Runden Testfälle: kaufmännisch, gerade, toFixed
Beim Runden auf einen Halbwert wie 0,5 oder 2,5 liefern die Verfahren unterschiedliche Ergebnisse: Kaufmännisches Runden rundet auf, das Bankers Rounding zur geraden Zahl. Die Seite zeigt Testfälle mit den Ergebnissen beider Verfahren und dem von JavaScript toFixed, das bei Werten wie 2,675 wegen der binären Darstellung abweichen kann. Damit lassen sich Rundungsfunktionen in Berechnungen und Berichten prüfen.
20 Varianten auf einer Seite, jede mit eigenem Kopier- oder Download-Knopf.
Runden: 0,5 auf 0 Nachkommastellen
kaufmännisch: 1 bankers (gerade): 0 JavaScript toFixed(0): 1
Dezimal exakt gerechnet. Die Verfahren weichen ab.
Runden: 1,5 auf 0 Nachkommastellen
kaufmännisch: 2 bankers (gerade): 2 JavaScript toFixed(0): 2
Dezimal exakt gerechnet.
Runden: 2,5 auf 0 Nachkommastellen
kaufmännisch: 3 bankers (gerade): 2 JavaScript toFixed(0): 3
Dezimal exakt gerechnet. Die Verfahren weichen ab.
Runden: 3,5 auf 0 Nachkommastellen
kaufmännisch: 4 bankers (gerade): 4 JavaScript toFixed(0): 4
Dezimal exakt gerechnet.
Runden: 2,675 auf 2 Nachkommastellen
kaufmännisch: 2,68 bankers (gerade): 2,68 JavaScript toFixed(2): 2,67
Dezimal exakt gerechnet. toFixed weicht ab: 2.675 ist als Double nicht exakt.
Runden: 1,005 auf 2 Nachkommastellen
kaufmännisch: 1,01 bankers (gerade): 1,00 JavaScript toFixed(2): 1,00
Dezimal exakt gerechnet. Die Verfahren weichen ab. toFixed weicht ab: 1.005 ist als Double nicht exakt.
Runden: 2,345 auf 2 Nachkommastellen
kaufmännisch: 2,35 bankers (gerade): 2,34 JavaScript toFixed(2): 2,35
Dezimal exakt gerechnet. Die Verfahren weichen ab.
Runden: 2,355 auf 2 Nachkommastellen
kaufmännisch: 2,36 bankers (gerade): 2,36 JavaScript toFixed(2): 2,35
Dezimal exakt gerechnet. toFixed weicht ab: 2.355 ist als Double nicht exakt.
Runden: 0,125 auf 2 Nachkommastellen
kaufmännisch: 0,13 bankers (gerade): 0,12 JavaScript toFixed(2): 0,13
Dezimal exakt gerechnet. Die Verfahren weichen ab.
Runden: 0,135 auf 2 Nachkommastellen
kaufmännisch: 0,14 bankers (gerade): 0,14 JavaScript toFixed(2): 0,14
Dezimal exakt gerechnet.
Runden: 1,115 auf 2 Nachkommastellen
kaufmännisch: 1,12 bankers (gerade): 1,12 JavaScript toFixed(2): 1,11
Dezimal exakt gerechnet. toFixed weicht ab: 1.115 ist als Double nicht exakt.
Runden: 10,005 auf 2 Nachkommastellen
kaufmännisch: 10,01 bankers (gerade): 10,00 JavaScript toFixed(2): 10,01
Dezimal exakt gerechnet. Die Verfahren weichen ab.
Runden: 99,995 auf 2 Nachkommastellen
kaufmännisch: 100,00 bankers (gerade): 100,00 JavaScript toFixed(2): 100,00
Dezimal exakt gerechnet.
Runden: 0,045 auf 2 Nachkommastellen
kaufmännisch: 0,05 bankers (gerade): 0,04 JavaScript toFixed(2): 0,04
Dezimal exakt gerechnet. Die Verfahren weichen ab. toFixed weicht ab: 0.045 ist als Double nicht exakt.
Runden: 1,25 auf 1 Nachkommastellen
kaufmännisch: 1,3 bankers (gerade): 1,2 JavaScript toFixed(1): 1,3
Dezimal exakt gerechnet. Die Verfahren weichen ab.
Runden: 1,35 auf 1 Nachkommastellen
kaufmännisch: 1,4 bankers (gerade): 1,4 JavaScript toFixed(1): 1,4
Dezimal exakt gerechnet.
Runden: 0,05 auf 1 Nachkommastellen
kaufmännisch: 0,1 bankers (gerade): 0,0 JavaScript toFixed(1): 0,1
Dezimal exakt gerechnet. Die Verfahren weichen ab.
Math.round bei -2.5
-2
JavaScript rundet .5 Richtung +∞: -2.5 → -2, nicht -3.
Python round(2.5) und round(3.5)
round(2.5) = 2 round(3.5) = 4
Python 3 rundet .5 zur geraden Zahl (Banker’s Rounding).
Cent-Rechnung mit Gleitkomma: Summe der Zehntel
0.9999999999999999
Zehnmal 0.1 addiert ergibt in JavaScript nicht 1.