Runden, Abschneiden, Aufrunden und das Problem 0,1 + 0,2 — alles zur Rundung im Rechner
Der Unterschied zwischen kaufmännischem Runden, Abschneiden (Abrunden) und Aufrunden, Rundung von Geldbeträgen, Banker’s Rounding, warum 0.1 + 0.2 im Computer 0.30000000000000004 ergibt und wie dieser Rechner damit umgeht.
Direkt im Rechner ausprobieren →
Prozentrechnungen bestehen oft aus Divisionen und Multiplikationen mit Dezimalzahlen, daher geht das Ergebnis selten glatt auf. Je nachdem, wie die Nachkommastellen behandelt werden, weicht dieselbe Rechnung um einige Cent ab. Wer die Regeln kennt, kann Unterschiede zwischen Kassenbon und Angebot erklären.
Drei Arten der Rundung
- Kaufmännisches Runden: Ist die erste wegfallende Ziffer 5 oder größer, wird aufgerundet, sonst abgerundet. 1.234,5 → 1.235
- Abschneiden (Abrunden): Alle wegfallenden Stellen werden verworfen. 1.234,9 → 1.234
- Aufrunden: Ist eine wegfallende Stelle nicht 0, wird aufgerundet. 1.234,1 → 1.235
Auch die Einheit lässt sich ändern: 12.345 auf 10 genau abgeschnitten ergibt 12.340, auf 100 genau gerundet 12.300.
Wo wird was verwendet?
- Mehrwertsteuerbetrag in Südkorea: Abschneiden von Bruchteilen eines Won ist gängige Praxis
- Zahlung nationaler Steuern in Südkorea: gemäß Artikel 47 des Gesetzes über die Verwaltung von Staatsgeldern werden Beträge unter 10 Won nicht berechnet
- Rabattpreise im Handel: je nach Geschäft verschieden, der Rabattbetrag wird oft auf glatte Beträge abgeschnitten
- Statistiken und Anteile: üblich ist kaufmännisches Runden auf eine oder zwei Nachkommastellen
- Benötigte Mengen (Kartons, Personen): es darf nicht zu wenig sein, daher Aufrunden
Rundung negativer Zahlen
Ergibt −2,5 gerundet −3 oder −2? Dieser Rechner rundet von null weg und liefert −3. Abschneiden erfolgt in Richtung null (−1,239 → −1,23), Aufrunden von null weg. Unabhängig vom Vorzeichen wird also dieselbe Regel auf den Betrag (Absolutwert) angewendet.
Banker’s Rounding
Bei genau der Hälfte (…5) wird zur geraden Ziffer gerundet (2,5 → 2, 3,5 → 4). Einige Buchhaltungs- und Programmierumgebungen verwenden dieses Verfahren, um systematische Verzerrungen bei sehr häufigem Runden zu verringern. Im Alltag und in diesem Rechner wird kaufmännisch gerundet.
Warum ergibt 0.1 + 0.2 im Computer 0.30000000000000004?
Computer speichern Zahlen im Binärsystem. So wie 1/3 im Dezimalsystem als 0,333… nicht endet, ist 0,1 im Binärsystem ein unendlicher Bruch. Die Zahl wird daher nicht exakt, sondern als sehr nahe gelegener gerundeter Wert gespeichert. Deshalb liefert 0.1 + 0.2 in den meisten Programmiersprachen, auch in JavaScript, 0.30000000000000004.
Aus demselben Grund liefert die verbreitete Methode, 1,005 auf zwei Nachkommastellen zu runden (toFixed(2)), nicht 1,01, sondern 1,00 — denn 1,005 ist in Wirklichkeit als 1,00499999… gespeichert.
So rechnet dieser Rechner
- Alle Zwischenergebnisse werden auf 12 signifikante Stellen bereinigt, um das Rauschen der Binärdarstellung zu entfernen. 0,1 + 0,2 → 0,3
- Gerundet wird nicht durch Multiplizieren, sondern durch Verschieben der Stellen in dezimaler Exponentialschreibweise. 1,005 → 1,01, 2,675 → 2,68
- Für Geldbeträge wählen Sie in den Tabs Rabatt und MwSt. Einheit (0,01, 1, 10, 100 usw.) und Verfahren (abschneiden, runden, aufrunden).
- Dieses Verfahren wurde mit node-Unit-Tests an Grenzwerten (1,005, −2,5, sehr kleine und sehr große Werte) geprüft.
Angezeigte Stellen und tatsächlicher Wert
Die Einstellung Nachkommastellen oben ändert nur die Anzahl der angezeigten Stellen. 1 ÷ 3 × 100 ist intern 33,3333333333 und wird bei 2 Nachkommastellen als 33,33 angezeigt. Die Kopieren-Schaltfläche kopiert den angezeigten Wert.
Fazit
Weichen Ergebnisse wegen unterschiedlicher Rundungsregeln um einige Cent ab, ist das kein Fehler, sondern ein Unterschied in den Regeln. Stimmt ein Betrag nicht, prüfen Sie zuerst: ① in welchem Schritt gerundet wurde und ② mit welcher Einheit und welchem Verfahren.