Präzision von PHP-Gleitkommazahlen: Warum das unerwartete Ergebnis?
Der Umgang von PHP mit Gleitkommazahlen kann zu überraschenden Ergebnissen führen. Bedenken Sie Folgendes:
$a = '35'; $b = '-34.99'; echo ($a + $b);
Anstelle der erwarteten 0,01 beträgt die Ausgabe 0,009999999999998. Diese Besonderheit ergibt sich aus dem grundlegenden Unterschied zwischen Gleitkomma-Arithmetik und reeller Zahlenarithmetik.
Gleitkommazahlen stellen, wie der Name schon sagt, Zahlen in binärer Notation mit endlicher Genauigkeit dar. Daher ist es mit dieser Methode unmöglich, alle Zahlen genau darzustellen. Dies kann zu Ungenauigkeiten und Überraschungen wie oben führen.
Um dieses Problem zu beheben, kann man Folgendes in Betracht ziehen:
Leider fehlt PHP wie vielen anderen Sprachen ein dezidierter Dezimaldatentyp. Dies kann die Präzision bei der Arbeit mit finanziellen oder wissenschaftlichen Berechnungen beeinträchtigen.
Das obige ist der detaillierte Inhalt vonWarum führt die PHP-Gleitkomma-Addition zu unerwarteten Ergebnissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!