Float bzw. Double -> Ansi



  • Hallo,

    hatte letztens das Problem, Integerwerte nach ANSI umzuwandeln. Jetzt kommen die Gleitkommawerte. Dabei werde ich wohl nicht um die FPU herumkommen.

    Nun hänge ich an folgendem Problem:
    Wie kann ich die Nachkommastellen in einen neuen Integer "verschieben"?
    x,43434 -> 0,43434 -> 43434
    Diesen neuen Integer kann ich dann ganz bequem an den fertig String nachher anhängen.
    Die ganze Zahl danach nach ANSI umzuwandeln ist kein Problem, ich weiß nur einfach nicht, wie ich aus den Nachkommastellen einen neuen Wert mache...bzw. weiß ich keine vernünftige Lösung...

    Hoffe ich hab mich verständlich ausgedrückt...
    Danke schon im Voraus!



  • Dein Ansatz ist ungünstig. Die Nachkommazahl kann durchaus die Grenzen eines Integers sprengen, wobei die Anpassung extrem umständlich ist. Einfacher ist, die Nachkommazahl jeweils mit 10 zu multiplizieren, wobei immer eine Vorkommazahl im Bereich 0..9 entsteht. Die Vorkommazahl kann weiterverarbeitet werden, wird dann abgezogen und mit der neuen Zahl weitergearbeitet:

    0,987654321 * 10 -> 9,87654321 -> 9
    0,87654321 * 10 -> 8,7654321 -> 8
    0,7654321 * 10 -> 7,654321 -> 7
    usw.

    Ein miserabel dokumentiertes, aber funktionierendes Beispiel:
    http://dcla.rkhb.de/umwandlung/float2dez.html

    viele grüße
    ralph



  • Ja gut, ich hätte mich auch mit 5 Nachkommastellen begnügt 🙂
    Aber dein Ansatz sieht sehr vielversprechend aus und den Link werde ich mir bei Zeiten auch genauer anschauen -> Lesezeichen.
    Gäbe es für mein Vorhaben eigentlich eine bessere Möglichkeit als die FPU?

    Danke!



  • Ist doch wirklich kein Problem, denn warum heißt es wohl "Gleitkomma"? 😉


Anmelden zum Antworten