Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Exception oder nicht bei gleichem Code?


Flamefire - Di 11.08.09 17:13
Titel: Exception oder nicht bei gleichem Code?
Hab folgenden Code:

Delphi-Quelltext
1:
2:
    PositionInt:Word;//...
    Data.X:=Floor(ASingle /10)+(((LOBYTE(PositionInt)-$87)*3shl 6);


und ein Kumpel meinte, er bekommt da gelegendlich Exceptions

und hat das geändert zu:

Delphi-Quelltext
1:
2:
    PositionInt:Word;//...
    Data.X := Floor((LOBYTE(PositionInt) * 3 - $195) *64 + (ASingle / 10));

das sollte aber meiner meinung nach äquivalent sein, und wenn im ersten fall exceptions kommen, dann auch im 2.
nur sollte der obere code u.U. etwas schneller sein

ist das möglich?


delfiphan - Di 11.08.09 17:51

Was für eine Exception? Welcher Wertebereich haben die beiden Variablen in deiner Applikation?


Flamefire - Di 11.08.09 18:10

"Invalid floating point operation"

X:Integer;
ASingle:Single;<-- wird vorher zugewiesen

fehler kommt anscheinend bei Floor(ASingle/10)