Forum: Object-Pascal / Delphi-Language
Delphi
by blink182,
18. Mär 2010
Das liegt halt an der internen Darstellung von Gleitkommazahlen.
IEEE 754 ;)
http://www.h-schmidt.net/FloatApplet/IEEE754de.html z.b.
was dezimal 0.61 ist, ist mit Doublegenauigkeit noch lange nicht 0.61, sondern 0.6100000143051147 -> also muss exakte
von 0.61d etwas kleiner sein als 0.61 und wird somit, mit trunc(x*100) als 60 interpretiert...
Forum: Object-Pascal / Delphi-Language
Delphi
by blink182,
18. Mär 2010
mhm komisch :-D
habs eben auch mal getestet und das selbe "Problem" gehabt.
Was ich mir vorstellen kann ist, dass die Zahl intern nicht genau dargestellt werden kann, kann ich aber nicht sagen. (Mantisse und Exponent)
Hab dann mal bisschen was getestet:
trunc(0.61*100) // -> 61
//
var offset:real;
offset:=0.61;