Probleme bei der "Wandlung" von CString in double



  • Hi,

    ich versuche nun doch schon seit einer Weile einen CString (ausgelesen aus einer mySQL-DB) in eine Double Zahl umzuwandeln.

    Bsp.:

    CString new_result="0.0331";
    double res_temp1=strtod(new_result, NULL);
    double res_temp2=atof(new_result);
    

    Leider ergibt sich dabei ein kleines Problem.
    res_temp1 und res_temp2 besitzen jeweils den Wert 0.0330999999999999..7
    Für meine nachfolgenden Berechnungen ist es jedoch notwenig exakt mit 0.0331 zu rechnen.

    Vielen Dank schonmal im Voraus
    Gruß Se33l

    P.S.: new_result ist veränderbar !



  • Hallo Se331,

    das geht nicht genauer!

    Lade Dir das folgend Progrämmchen herunter und spiele ein wenig damit, dann wirst Du sehen warum es nicht besser geht:

    http://www.flounder.com/floating_point_explorer.htm

    Herzliche Grüsee
    Walter



  • Hallo Walter,

    danke für deine Antwort.
    Jetzt fällts mir auch wieder ein.. hatte das irgendwann mal im Studium 😉

    Naja man kann sich halt nich alles merken 🙂

    Gruß Se33l


Anmelden zum Antworten