0.30000000000000004.com

Die Tücken der Fließkomma-Mathematik

Quelle: Foto: 0.30000000000000004.com
29.07.2022
Ihre Sprache ist nicht kaputt, sie macht Fließkomma-Mathematik. Da Computer von Haus aus nur ganze Zahlen speichern können, brauchen sie eine Möglichkeit, Dezimalzahlen darzustellen. Diese Darstellung ist allerdings nicht ganz exakt.
Besonders tückisch ist diese Rechenschwäche moderner Computer, wenn man als Entwickler eine Abfrage auf Gleichheit vornimmt, also etwa so:
x = 0.1 + 0.2
Wenn x = 0.3 dann
  mach' etwas ganz besonderes ...
Wen der Computer allerdings die ganz einfache Rechnung 0.1 + 0.2 durchführt, kommt dabei nicht in jedem Fall 0.3 heraus, sondern beispielsweise 0.30000000000000004. Für obigen Pseudo-Code bedeutet das, dass er x als ungleich 0.3 ansieht und die Anweisung etwas ganz besonderes zu machen nicht ausführt.
Wer sich dafür interessiert, warum das so ist und was man dagegen unternehmen kann, sollte diesen Beitrag auf 0.30000000000000004.com lesen. Für knapp 70 Programmiersprachen wird dort auch gezeigt, welche Ergebnisse die Addition von 0.1 und 0.2 liefert, darunter findet man auch Ergebnisse, die kleiner sind als 0.3.
In CSharp und anderen .NET-Sprachen kann man mit dem Datentyp Decimal vorbeugen. Dieser liefert 28-29 Stellen Genauigkeit, hat aber auch zwei Nachteile: Zum einen einen deutlich kleineren Geltungsbereich und zum anderen den großen Speicherbedarf (16 Byte) jeder einzelnen Zahl (zum Vergleich: Float kommt mit 4 und Double mit 8 Byte aus).

Autor(in)

Das könnte sie auch interessieren
Künstliche Intelligenz
Memary - Langzeitgedächtnis für autonome Agenten
Cloud Infrastructure
Oracle mit neuen KI-Funktionen für Sales, Marketing und Kundenservice
Reactive mit Signals
Neuer Vorschlag für Signals in JavaScript
Künstliche Intelligenz
Microsofts Semantic Kernel eine Million Mal heruntergeladen
Mehr News?
Besuchen Sie unsere Seite ...
https://www.com-magazin.de
nach oben