Thomas Meinike: round() - Rundungsfehler?

Beitrag lesen

Hallo,

Vielleicht hilft es auch hier das Manual auf englisch(http://php3.de/manual/en/function.round.php) zu lesen (da aktueller), denn da steht noch eine kleine Warnung:

Caution

PHP doesn't handle strings like "12,300.2" correctly by default. See converting from strings.

Mir ging es ja nicht um Strings, sondern die Dezimalzahl 1.025 und daraus ermitteln die PHP-Funktionen round() und number_format() 1.02. Die JavaScript-Methode toFixed() ergibt 1.03, ebenso wie die von mir seit > 15 Jahren verwendete Technik

x=1.025;
y=GanzeZahl(x*100+0.5)/100;

Gerade wegen dem Ergebnis 1.02 habe ich mich auf die offenbar veraltete Rundungsregel bezogen, die ich in der Praxis (z. B. bei naturwissenschaftlichen Studien) auch nicht einsetzte, sondern die oben genannte.

Ich habe auch mal alte Artikel nachgeschlagen und da habe ich noch von der VB6-Funktion Round() berichtet, die 0.125 zu 0.12 rundete. Da ich diese Version nicht hier habe, kann ich das nicht mit anderen Werten reproduzieren.

Insofern stellt sich die Frage, ob man also diesen Rundungsfunktionen traut oder sich lieber auf die bewaehrten Praktiken verlaesst.

MfG, Thomas