Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komische EInvalidOp (https://www.delphipraxis.net/3155-komische-einvalidop.html)

janjan 26. Feb 2003 09:43


Komische EInvalidOp
 
Ich bekomm in folgender Zeile eine EInvalidOp

Delphi-Quellcode:
if sqrt(sqr(FRadius-FPunkte[i].y)+sqr(FRadius-FPunkte[i].x)) > FRadius then
nur leider weiß ich nicht warum :(

Aus der Delphi Hilfe:

Code:
Beschreibung

EInvalidOp wird ausgelöst, wenn der Prozessor eine nicht definierte Anweisung, eine unzulässige Operation oder einen Stack-Überlauf des Gleitkomma-Prozessors feststellt.

Laufzeitinformationen zu Exceptions werden in den von EExternal bereitgestellten Feldern gespeichert.

btw.
ist
Delphi-Quellcode:
if sqrt(sqr(a)+sqr(b)) > c then
eigentlich langsamer als
Delphi-Quellcode:
if (sqr(a)+sqr(b)) > sqr(c) then
?

sakura 26. Feb 2003 09:52

Re: Komische EInvalidOp
 
Zitat:

Zitat von janjan
ist
Delphi-Quellcode:
if sqrt(sqr(a)+sqr(b)) > c then
eigentlich langsamer als
Delphi-Quellcode:
if (sqr(a)+sqr(b)) > sqr(c) then
?

Die Frage stellt sich nicht, da es zwei verschiedene Lösungen sind. Wenn C < 0 ist, dann wird die erste Lösung immer True ergeben, die zweite muss jedoch nicht zwangsläufig True ergeben. SQRT(X) für X>=0 ergibt immer einen Wert >= 0. X ist im obigen Falle immer >= 0 da, SQR(N) + SQR(M) immer >= 0, da SQR(A) >= 0.

Woher die EInvalidOp kommt, habe ich auch noch nicht entdeckt :D

...:cat:...

janjan 26. Feb 2003 09:58

Angenommen C ist immer positiv, dann müssten beide Gleichungen identisch sein, oder?

sakura 26. Feb 2003 10:23

Zitat:

Zitat von janjan
Angenommen C ist immer positiv, dann müssten beide Gleichungen identisch sein, oder?

Wenn wir dann noch rundungsfehler - welche bei SQRT im allg. höher sind als bei SQR ausschliessen können, dann ja. Logisch zumindest eindeutig ja, wenn C >= 0.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz