LERNE IN DEINEM TEMPO

Warum ergibt 0,1 + 0,2 am Computer nicht 0,3?

Veröffentlicht am · Aktualisiert am

Wenn du in JavaScript oder Python 0.1 + 0.2 eingibst, lautet das Ergebnis 0.30000000000000004 und nicht 0,3. Das passiert auf jedem Computer, weil er Dezimalzahlen als Brüche mit dem Nenner 2, 4, 8, 16 … speichert und sich 0,1 so nicht schreiben lässt. Die Rechnung mit Brüchen, 1/10 + 2/10, ergibt dagegen genau 3/10, ohne etwas zu verlieren.

Rechenbeispiel: dieselbe Summe mit Brüchen

Addiere 0,1 und 0,2 ohne Binärzahlen.

  1. Schreibe jede Dezimalzahl als Bruch. 0,1 = 1/10 und 0,2 = 2/10.
  2. Addiere die Zähler. Die Nenner sind schon gleich: 1 + 2 = 3.
  3. Behalte den Nenner. Das Ergebnis lässt sich nicht kürzen.

Ergebnis: 0,3, ohne Fehler.

Probe: 3/10 sind drei Zehntel, und 0,1 + 0,2 sind ebenfalls drei Zehntel.

Um eine beliebige Dezimalzahl in einen Bruch zu verwandeln, nutze den Rechner Dezimalzahl in Bruch, der von den Ziffern ausgeht, die du eingegeben hast.

Was der Computer wirklich speichert

Programmiersprachen verwenden fast immer Gleitkommazahlen mit doppelter Genauigkeit (IEEE 754). Jede davon ist ein Bruch, dessen Nenner eine Zweierpotenz ist. Schreibst du 0,1, speichert das Programm den nächstgelegenen solchen Bruch: 3602879701896397/2⁵⁵, und der hat den Wert 0,1000000000000000055511151231257827… Er ist ein wenig größer als 0,1. Die Python-Dokumentation gibt an, dass für 0.1 der Binärbruch 3602879701896397 / 2**55 gespeichert wird, der nahe an 1/10 liegt, aber nicht gleich ist.

Die Anzeige rundet, deshalb sieht 0.1 richtig aus. Lässt du mehr Stellen ausgeben, kommt der Unterschied zum Vorschein.

Gespeicherter Wert im Vergleich zur Dezimalzahl, die du schreibst
Du schreibstGespeichert wirdAbweichung vom Geschriebenen
0,10,1000000000000000055511…+5,6 × 10⁻¹⁸
0,20,2000000000000000111022…+1,1 × 10⁻¹⁷
0,30,2999999999999999888977…−1,1 × 10⁻¹⁷
Gespeicherte Summe von 0,1 + 0,20,3000000000000000444089…+4,4 × 10⁻¹⁷ gegenüber 0,3

Das gespeicherte 0,2 ist genau das Doppelte des gespeicherten 0,1 und hat deshalb auch den doppelten Fehler. Beim Addieren wird das Ergebnis erneut auf den nächsten Binärbruch gerundet, und diese Zahl ist eine andere als die, die für 0,3 gespeichert wurde. Beide liegen auf verschiedenen Seiten von 3/10, darum ist der Vergleich 0.1 + 0.2 == 0.3 falsch. Die Addition des Computers ist korrekt ausgeführt; anders sind nur die Zahlen, mit denen sie beginnt.

Warum 1/10 im Binärsystem nicht passt

Ein vollständig gekürzter Bruch hat in einem Stellenwertsystem genau dann eine endliche Schreibweise, wenn sein Nenner nur Primfaktoren der Basis enthält. In Basis 10 sind das die 2 und die 5. In Basis 2 nur die 2. Der Nenner 10 enthält eine 5, also wiederholt sich 1/10 im Binärsystem endlos: 0,000110011…₂ mit dem Block 0011. Es ist dasselbe Phänomen, das 1/3 in Basis 10 zu 0,333… macht, nur mit einer anderen Primzahl und einer anderen Basis. Der Ratgeber zu Brüchen mit abbrechender Dezimalzahl entwickelt die Regel für Basis 10, und der zu endlichen und periodischen Dezimalzahlen erklärt, wie man eine Periode schreibt.

Um beide Fälle zu unterscheiden, schau dir den Nenner nach dem Kürzen an.

Dezimalzahlen, die der Computer fehlerfrei speichert, und solche, bei denen das nicht gelingt
DezimalzahlBruchBinär exakt?
0,51/2Ja, Nenner 2
0,1251/8Ja, Nenner 8 = 2³
0,6255/8Ja, 0,101₂
0,21/5Nein, der Nenner 5 ist keine Zweierpotenz
0,33/10Nein, der Nenner 10 enthält eine 5
0,753/4Ja, Nenner 4

Von den Zehnteln wird nur 0,5 fehlerfrei gespeichert; Viertel und Achtel ebenfalls. Welche Dezimalzahl zu einem beliebigen Bruch gehört und ob sie abbricht oder sich wiederholt, zeigt der Rechner Bruch in Dezimalzahl.

Was du in der Praxis tun kannst

Es gibt drei Wege, je nachdem, was du brauchst.

Bei Geldbeträgen kannst du alternativ in Cent mit ganzen Zahlen rechnen und nur zur Anzeige durch 100 teilen. Ganze Zahlen bis 2⁵³ werden ohne Verlust gespeichert, jede Addition ist also fehlerfrei. Die konkrete Entscheidung hängt vom jeweiligen System ab.

Der Rechner auf dieser Website folgt demselben Prinzip: Er arbeitet mit ganzen Zahlen und Brüchen, deshalb liefert 0,1 + 0,2 im Bruchrechner den Wert 3/10. Die Dezimalzahl, die du siehst, ist nur eine Darstellung des Ergebnisses; der Bruch bleibt der Bezugswert. Wie die Rechnungen ausgeführt und geprüft werden, steht auf der Seite Methodik.

Quelle: Python-Dokumentation auf Deutsch, Gleitkommaarithmetik: Probleme und Einschränkungen (abgerufen am 17. Oktober 2026). Die Werte in der Tabelle wurden mit exakter Bruchrechnung überprüft.

Nächster Schritt

Blog über Brüche Wähle einen Artikel über Brüche nach deinem Bedarf: Unterricht vorbereiten, üben, ein Verfahren verstehen oder eine Kuriosität lesen, mit…
Fehler meldenSo gehen wir mit Korrekturen um

Bruchrechner verwenden

DEIN RECHNER, IMMER GRIFFBEREIT

Rechner speichern

Öffne das Browsermenü und wähle „App installieren“ oder „Zum Startbildschirm hinzufügen“. Du kannst die Seite auch als Lesezeichen speichern.