Hallo Gunnar,
es ist in der Finanzmathematik eigentlich üblich, Geldberechnungen mit 4 Nachkommastellen durchzuführen (für Euro-Werte). Mehr ist nicht nötig. Rechnet man mit Cent, nimmt man 2 Nachkommastellen. Genauer zu rechnen verbietet einem aber auch keiner, soweit ich weiß.
Mit Cents und ohne Nachkommastellen zu rechnen KANN funktionieren, setzt aber voraus, dass man genau auf die Reihenfolge der Operationen achtet. Divisionen, die Nachkommastellen erzeugen können, dürfen dann erst am Ende stattfinden. Mit der Folge, dass man ggf. ziemlich hohe Zwischenwerte erhält, die den Integer-Zahlenraum sprengen.
Es ist also durchaus ok, in PHP mit floats zu rechnen. Speichern oder ausgeben tut man sie dann in EUR auf 2 Nachkommastellen gerundet.
Ich habe gerade eine Weile gegoogelt, ob es bspw. BAFIN-Vorschriften für die Finanzdienstleister gibt, wie sie mit Geld zu rechnen haben. Gefunden habe ich nichts. Ich arbeite zwar bei einem BAFIN-überwachten Unternehmen, aber nicht in einem entsprechenden Bereich. Ich weiß nur, dass wir vor 20 Jahren, bei der Umstellung von DM auf EUR, sehr genaue Vorgaben hatten, wie Berechnungen auszuführen waren und wann zu runden war. Da mussten 4 Nachkommastellen für Zwischenergebnisse verwendet werden.
Eine Kettenrechnung, wie Henry sie ausführt, sollte nach jeder Iteration auf 4 Nachkommastellen gerundet werden. Das verhindert zwar den prinzipiellen Float-Fehler nicht, sorgt aber dafür, dass man nicht durch Fehlerfortpflanzung ein Hunderstelcent verschlampt.
Rolf
sumpsi - posui - clusi