Double -> Float (exakt)
-
Hallo zusammen!
(Ja, ich habe bereits einige Threads gelesen, aber nicht das Passende gefunden
)
Ich arbeite dem C++ Builder (VCL) 2010.
Das Problem ist die Gleitkommaungenauigkeit bei der Konvertierung von Double zu Float.
Ich muss diese Ungenauigkeit irgendwie umgehen, Abweichungen sind leider nicht tolerierbar.Eingabe "1,2" (UnicodeString) -> "1,2" (Double) -> "1,19972....." (Float)
Funktionen a la StrToFloat funktionieren leider nicht, da sie double Werte zurückgeben.
Any solutions?
Schöne Grüße!
-
Olli85 schrieb:
Any solutions?
int verwenden oder (teure) Bibliothek anschaffen. Oder einfach nur die Ausgabe formatieren. Die Ungenauigkeiten sind nicht zu umgehen. Die Ungenauigkeiten liegen an den Unzulänglichkeiten der Fließkommadatentypen.
-
Hallo
Ja, wie Joe schon sagte, das Stichwort ist Festkommazahlen, entweder __int64 als Ersatz (intern rechnest du ohne Nachkommastellen, zur Ausgabe verschiebst du dann die Ziffern wieder), Currency oder eine externe Bibliothek.
bis bald
akari