(Rund um die...) Achtung Cast
-
Hallo,
ich hab versucht aus einem TEdit Element den String zu nehmen, den Cast auf double durchzuführen und dann den erhaltenen Wert auf float zu casten. Also etwa sodouble myDouble = Edit1->Text.ToDouble(); float myFloat = (float)myDouble;
Anscheinend gibt es keine Methode String.ToFloat() sonst hätt ich das gleich auf float gecastet.
Jetzt komm ich zum Punkt:
gab ich ins Editfeld ,2 ein
also wollte 0.2 raus haben
kam etwas in der Richtung 0.2000000294 herausDie Folge war das ich alle floats in double umwandeln durfte.
Hat jemand etwas ähnliches erlebt oder eine Lösung gefunden wie man diesen Cast-Humbug wieder hinbekommt?
-
hallo,
schau dir mal die Format-funktion an, in der hilfe gut beschrieben, damit kannst du die ausgaben auf deine wünsche anpassen.
warum da so etwas rauskam weiß ich auch nicht...mfg
murph
-
Es geht nicht um die Ausgaben, da ich in meinem Programm die float Werte vergleichen wollte, wären 0,2 und 0,200000294 unterschiedliche Zahlenwerte. Das darf natürlich nicht sein.
-
Aufgrund der unvermeidlichen Ungenauigkeit von Computern kannst du Gleitkommazahlen nicht zuverlässig direkt miteinander vergleichen. Habe gerade erst irgendwo eine Abhandlung dazu gelesen, finde es aber auf die Schnelle nicht wieder.
Auf jeden Fall kein BCB-Problem, verschoben nach "Rund um"