rundung bei umwandlung von float ind char



  • ich habe folgendes problem ich wuerde gerne einen float in einen char umwandeln.
    dafuer nutze ich folgenden code:

    sprintf(tmp, "%f", wert);
    

    aber bei manchen zahlen rundet er das was in den char geschrieben wird so das z.B. aus 94.7 94.699997 wird.

    nun die entscheidene frage warum macht er das und wie kann ich das verhindern bzw. umgehen?

    grashuepfer



  • Benutz die C++-Methode: std::stringstreams und eventuell den modifier std::setwidth. Deine Methode ist fehlerträchtig und C.



  • ja danke fuer denn tipp 👍 .
    und tut mir leid das ich es mir keiner ordentlich beigebracht hat,in demm buch mit demm ich das programieren gelernt habe wurde es so beschrieben 😉



  • grashuepfer schrieb:

    und tut mir leid das ich es mir keiner ordentlich beigebracht hat,in demm buch mit demm ich das programieren gelernt habe wurde es so beschrieben 😉

    Kein Problem, da kannst du ja nichts dafür. 🙂

    Es ist leider so, dass viele C++-Bücher nicht wirklich zu gebrauchen sind. Welches hast du denn? Vielleicht solltest du dir eines zulegen, das von vielen empfohlen wird - zum Beispiel der C++-Primer oder Thinking in C++. Denn es ist gut möglich, dass dir noch viele weitere "merkwürdige" Dinge beigebracht werden...


Anmelden zum Antworten