Heim > Backend-Entwicklung > PHP-Tutorial > Warum führt die PHP-Gleitkomma-Addition zu unerwarteten Ergebnissen?

Warum führt die PHP-Gleitkomma-Addition zu unerwarteten Ergebnissen?

Susan Sarandon
Freigeben: 2024-12-17 00:58:25
Original
690 Leute haben es durchsucht

Why Does PHP Floating-Point Addition Produce Unexpected Results?

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);
Nach dem Login kopieren

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:

  • Verwenden Sie „round($result, 2)“ für das Ergebnis Runden Sie es auf zwei Dezimalstellen.
  • Verwenden Sie ganze Zahlen. Wenn es um Währungen geht, speichern Sie 35,00 $ als 3500 und 34,99 $ als 3499 und dividieren dann das Ergebnis durch 100.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage