Thread Rechenfehler mit Perl ausgleichen (71 answers)
Opened by bianca at 2013-04-27 13:42

GUIfreund
 2013-05-01 18:43
#167378 #167378
User since
2011-08-08
559 articles
BenutzerIn
[default_avatar]
2013-05-01T14:01:03 tonewheel
Im gegebenen Fall - d.h. wenn es um Währungen geht, wenn ich das richtig interpretiert habe - sollte man völlig auf Dezimalbrüche verzichten und die Beträge einfach in der Einheit Cent einfordern.

Rechnen in Cent hilft schon eine Menge, das Rundungsproblem zu entschärfen, aber vermeiden kannst du es nicht. Mehrwertsteuer, Rabatte, Zinsen, Umrechnung aus anderen Währungen usw., immer wieder muss das Ergebnis gerundet werden. So viel ich weiß, gibt es hierfür in der Finanz- und Geschäftswelt feste Regeln. Da hilft wohl nur, immer wieder einen Fachmann zu fragen (und der wird sich über die dummen Fragen die Haare raufen. Oder aber er weiß es auch nicht, weil das sein PC schon richtig macht.). Dann gibt es noch andere Größen, die skaliert werden müssen, z. B. Massen. Rechnest du da in Gramm, Milligramm oder Zehntel Tonnen? Das kommt auf die Anwendung an.

Die Ungenauigkeiten durch die Umwandlung zwischen Dezimal- und Gleitkommadarstellung sind ein weiterer Aspekt, der freilich fast immer durch Betriebssystem und Anwendungssoftware vor dem Anwender verborgen wird. Und unglücklicherweise ist dieses Thema recht abstrakt, sodass es nur schwer zu vermitteln ist. Schade, dass wir Menschen zehn Finger haben und nicht nur zwei, dann hätten wir dieses Problem wahrscheinlich nicht (8 oder 16 wäre auch nicht schlecht).

Die mechanischen Rechenmaschinen vergangener Jahrhunderte haben dezimal gearbeitet, und meines Wissens gab es das auch bei einigen der ersten Computer. Aber der Leistungsverlust war so enorm, dass nur geringe Nachfrage bestand. Emulieren lässt sich das bestimmt, aber wer bezahlt's, und wer benutzt es?
Gruß
GUIfreund

View full thread Rechenfehler mit Perl ausgleichen