Edit: Ich hatte vor kurzem noch ein anderes Problem mit FloatToStr. Es lieferte teilweise falsche Werte. Um keine Verwirrung zu stiften, hier der Link: viewtopic.php?f=18&t=6409
___________
Hallo,
ich habe gerade so ein kleines Tool geschrieben, womit man Gleitkommazahlen Hexadezimal eingeben kann, um zu sehen, welche Bits wofür gut sind. Jedoch erzeugt FloatToStr bei manchen Werten ein Exception. Rekonstruieren kann man das am besten mit folgendem Code:
Code: Alles auswählen
var
c : Cardinal;
f : Single;
s : AnsiString;
[...]
c := 4294967295;
f := PSingle(@c)^;
s := FloatToStr(f);
ShowMessage(s);
4294967295 ist der größte Wert, den man in eine 32-Bit-Zahl rein packen kann. Eigentlich sollte das doch auch als Single interpretiert funktionieren, oder?
Man kann mit der Variable f jedenfalls vor FloatToStr noch herumrechnen...