Wie Computer mit Kommazahlen umgehen

23.11.2025 4 Min. Lesezeit

Fließkommazahlen verstehen - Wie Computer mit Kommazahlen umgehen

Im vorherigen Artikel haben wir gesehen, dass Computer alle Informationen letztlich als Bits speichern und dass Datentypen nur Interpretationen dieser Bitmuster sind. Für ganze Zahlen (Integer) funktioniert das vergleichsweise einfach: Wir zählen binär und sind fertig.

Doch die reale Welt besteht nicht nur aus ganzen Zahlen. Längen, Gewichte, Geldbeträge, physikalische Größen - all das benötigt Kommazahlen. Und genau hier beginnt ein spannendes - und oft überraschendes - Kapitel der Informatik: Fließkommazahlen (Floating Point Numbers).


Warum Kommazahlen ein Problem sind

Auf den ersten Blick scheint es trivial:

Warum speichern wir nicht einfach Zahlen wie 3.14 genauso wie 314 - nur mit einem „Komma“?

Das Problem ist: Ein Computer kennt kein echtes Komma. Er kennt nur feste Bitmuster. Und vor allem: Speicher ist endlich.

Während eine Zahl wie 42 exakt darstellbar ist (sie hat eine endliche binäre Darstellung), sieht das bei vielen Dezimalzahlen anders aus. Ein einfaches Beispiel:

0.1 (dezimal)

Diese Zahl hat im Binärsystem keine endliche Darstellung. Sie wird zu einer unendlichen, periodischen Folge von Bits - ähnlich wie 1/3 = 0.3333... im Dezimalsystem.

Das bedeutet:
👉 Der Computer muss abschneiden und arbeitet daher immer mit einer Näherung.


Die Idee hinter Floating Point

Um mit sehr großen und sehr kleinen Zahlen effizient arbeiten zu können, bedienen sich Computer eines Tricks, den du vielleicht aus der Schule kennst: der wissenschaftlichen Notation.

Statt eine Zahl vollständig auszuschreiben, zerlegen wir sie:

12345 = 1.2345 × 10^4

Dasselbe Prinzip wird in Computern verwendet - nur im Binärsystem.

Eine Fließkommazahl besteht aus drei Teilen:

  1. Vorzeichen (Sign) - ist die Zahl positiv oder negativ?
  2. Exponent - wie stark wird skaliert?
  3. Mantisse (Signifikand) - die eigentlichen „signifikanten Stellen“

Ein Blick in die Praxis: IEEE 754

Nahezu alle modernen Computer verwenden den Standard IEEE 754 zur Darstellung von Fließkommazahlen.

Ein häufig verwendetes Format ist die sogenannte 32-Bit-Float (Single Precision):

Teil Größe
Vorzeichen 1 Bit
Exponent 8 Bit
Mantisse 23 Bit

Diese 32 Bits werden also aufgeteilt, um eine einzelne Zahl darzustellen.


Wie daraus eine Zahl entsteht

Das Schema lautet (vereinfacht):

Wert = (-1)^Vorzeichen × 1.Mantisse × 2^(Exponent - Bias)

Das klingt kompliziert, aber die Idee ist simpel:

  • Das Vorzeichen entscheidet über + oder -
  • Der Exponent verschiebt die Größenordnung
  • Die Mantisse enthält die eigentlichen Ziffern

Der sogenannte Bias ist eine technische Anpassung, damit der Exponent auch negative Werte darstellen kann.


Ein anschauliches Beispiel

Nehmen wir eine Zahl wie:

5.5 (dezimal)

Im Binärsystem entspricht das:

101.1

In normierter Form:

1.011 × 2^2

Jetzt passiert Folgendes:

  • Vorzeichen = 0 (positiv)
  • Exponent = 2 (entsprechend codiert)
  • Mantisse = 011 (der Teil nach der führenden 1)

So entsteht die gespeicherte Bitfolge.


Die große Herausforderung: Genauigkeit

Hier kommt der entscheidende Punkt, den viele Anfänger überrascht:

Die meisten Kommazahlen sind im Computer nicht exakt darstellbar.

Ein klassisches Beispiel:

0.1 + 0.2 = 0.30000000000000004

Das liegt nicht an einem „Fehler“ des Computers, sondern daran, dass:

  • 0.1 und 0.2 intern nur Näherungen sind
  • beim Addieren sich diese kleinen Fehler aufsummieren

Warum das wichtig ist

Diese Ungenauigkeiten haben reale Konsequenzen:

Vergleich von Zahlen

if (a == b):

Kann fehlschlagen, obwohl beide Werte „gleich aussehen“. Deshalb verwendet man oft Toleranzen:

abs(a - b) < 1e-9

Rundungsfehler

In langen Berechnungen können sich kleine Fehler verstärken. Besonders kritisch ist das in:

  • Finanzanwendungen
  • physikalischen Simulationen
  • Grafikberechnungen

Zahlenbereich vs. Genauigkeit

Ein weiterer wichtiger Trade-off:

Mehr Bits bedeuten entweder größere Zahlen oder höhere Genauigkeit - aber nie beides gleichzeitig in unendlicher Form.

Bei 32-Bit-Floats gibt es Grenzen:

  • sehr große Zahlen (z. B. 103810^{38}1038)
  • aber nur begrenzte Präzision (~7 Dezimalstellen)

Für mehr Genauigkeit nutzt man 64-Bit-Floats (Double Precision).

Spezialfälle: Ein kurzer Blick

IEEE 754 definiert auch einige besondere Werte:

  • +∞ / -∞ → unendliche Werte (z. B. Division durch 0)
  • NaN (Not a Number) → ungültige Ergebnisse (z. B. 0/0)

Diese Werte machen das System robuster, da Fehler explizit darstellbar sind.

Ein mentales Modell für Anfänger

Wenn du dir Fließkommazahlen merken willst, denke so:

Ein Float ist wie eine wissenschaftliche Schreibweise mit begrenzter Genauigkeit.

Oder noch einfacher:

Ein Float ist immer eine Annäherung.

Fazit: Mächtig, aber tückisch

Fließkommazahlen sind unverzichtbar für moderne Software. Ohne sie gäbe es keine:

  • 3D-Grafik
  • Physiksimulationen
  • wissenschaftliche Berechnungen
  • Machine Learning

Aber sie kommen mit einem Preis:

  • begrenzte Genauigkeit
  • Rundungsfehler
  • unerwartetes Verhalten bei Vergleichen

Das Verständnis dieser Eigenschaften ist ein entscheidender Schritt vom „Code-Nutzer“ zum „System-Versteher“.

Ausblick und praktische Konsequenz

Wenn du künftig mit Zahlen arbeitest, solltest du dich immer fragen:

Brauche ich exakte Werte → dann eher Integer verwenden (z. B. Cent statt Euro)
Brauche ich Näherungen → dann Floats bewusst einsetzen

Denn am Ende gilt:

Der Computer rechnet nicht falsch - er rechnet exakt das, was gespeichert wurde. Und das ist bei Floats eben oft nur eine Annäherung.