Int nach Float und wieder retour
-
Hallo Leute!
mal ne Frage, warum das so ist:
AnsiString strFloat = "0,03"; float oneFloat = StrToFloat(strFloat); int oneInt = oneFloat * 100;
Eigentlich sollte man erwarten, dass oneInt jetzt 3 ist, ist aber 2!
float tempFloat = oneFloat * 100; int tempInt = tempFloat;
Hingegen passt das so!
wo hakts da mit der Typkonvertierung? warum gerade Wert 2 beim 1. Beispiel, oder ists nur zufall...
meiner Meinung nach sollte da, wenn schon nicht 3, dann eigentlich 0 rauskommen...
-
Hast du schon mal im Debugger angeschaut, was bei StrToFloat herauskommt.
StrToFloat(0,03) ergibt bei der Umrechnung 0,02999993....
int Zahl = 0,029999 * 100 = 2So einfach ist das