Heim > Backend-Entwicklung > PHP-Tutorial > Warum sind PHP-Gleitkommazahlen ungenau und wie kann ich das beheben?

Warum sind PHP-Gleitkommazahlen ungenau und wie kann ich das beheben?

Mary-Kate Olsen
Freigeben: 2024-12-31 14:09:15
Original
1005 Leute haben es durchsucht

Why Are PHP Floating-Point Numbers Inaccurate, and How Can I Fix It?

Präzision von PHP-Gleitkommazahlen: Das Unerwartete entmystifizieren

In PHP können Gleitkommazahlen aufgrund der inhärenten Natur von Binärzahlen zu unerwarteten Ergebnissen führen Arithmetik. Im Gegensatz zu reellen Zahlen werden binäre Gleitkommazahlen mit begrenzter Genauigkeit dargestellt, was zu Näherungen und möglichen Ungenauigkeiten führt.

Betrachten Sie das Beispiel:

$a = '35';
$b = '-34.99';
echo ($a + $b);
Nach dem Login kopieren

Dies gibt 0,009999999999998 statt der erwarteten 0,01 aus. Dies liegt daran, dass 34,99 und 0,01 nicht präzise binär dargestellt werden können, was zu einer ungefähren Darstellung führt.

Um dieses Problem zu lösen, ziehen Sie die folgenden Alternativen in Betracht:

  • Rundung des Ergebnisses : Verwenden Sie „round($result, 2)“, um das Ergebnis auf zwei Dezimalstellen zu runden Orte.
  • Ganzzahlen verwenden: Für Währungsberechnungen speichern Sie Werte als Ganzzahlen. Stellen Sie beispielsweise 35,00 $ als 3500 und 34,99 $ als 3499 dar und dividieren Sie das Ergebnis nach der Berechnung durch 100.

Es ist erwähnenswert, dass PHP keinen dezidierten Dezimaldatentyp hat, der in anderen Sprachen zu finden ist, was möglicherweise verbessert werden könnte Genauigkeit in bestimmten Szenarien. Wenn Entwickler jedoch die Einschränkungen der Gleitkomma-Arithmetik verstehen, können sie unerwartete Ergebnisse abmildern und genaue Berechnungen sicherstellen.

Das obige ist der detaillierte Inhalt vonWarum sind PHP-Gleitkommazahlen ungenau und wie kann ich das beheben?. 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