Der Martin: Preise im Format "1.234,90" addieren

Beitrag lesen

Hallo,

reichts es idR aus, Geldbeträge als Integer, die Cents repräsentieren, abzuspeichern.
Wenn man es schon "ungünstig" macht: Warum nicht Dezimal mit zwei Nachkommastellen? :p

weil Integer-Rechnungen prinzipbedingt exakt sind (zumindest Addition, Subtraktion und Multiplikation), während beim Rechnen mit IEEE-Floating-Point schnell Rundungsfehler auftreten. Denn viele Zahlenwerte, etwa 4.01 lassen sich in IEEE-Floating-Point gar nicht exakt darstellen, also muss bereits bei der Eingabe bzw. der Speicherung des Werts gerundet werden. Dieser winzige Fehler pflanzt sich bei Rechnungen fort und wächst an. Schließlich kommt man auf einen Rechnungs-Endbetrag von 788.3700271EUR, obwohl alle Teilbeträge in ganzen Cents erfasst wurden.

Ciao,
 Martin

--
Zwei Kumpels sitzen vor dem Computer. "Welche Suchmaschine beutzt du eigentlich meistens?" - "Prima Vera." - "Hmm, kenn' ich gar nicht." Dann geht die Tür auf: "Schatz ich habe deine Sonnenbrille wiedergefunden!" - "Prima, Vera!"