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 = 2

    So einfach ist das


Anmelden zum Antworten