Heim > Artikel > Backend-Entwicklung > Warum führt meine PHP-Float-Berechnung zu einem „Fehler“ statt zu einem „Erfolg“?
Die berüchtigten Präzisionsfallen von PHP-Float-Berechnungen
Beim Umgang mit numerischen Daten ist Präzision von größter Bedeutung. Der Float-Datentyp von PHP kann jedoch bekanntermaßen knifflig sein und zu unerwarteten Ungenauigkeiten in Berechnungen führen.
Bedenken Sie den folgenden PHP-Ausschnitt:
<code class="php">$fooValue = 100.68; $cowValue = 100.67; $diffValue = $fooValue - $cowValue; if($diffValue <= 0.01) { echo("success"); } else { echo("error"); }</code>
Zu unserem Erstaunen gibt dieser Code „error“ statt aus der erwartete „Erfolg“.
Die Ursache: Float-Ungenauigkeit
Der Schuldige ist die inhärente Ungenauigkeit von Float-Datentypen. Bei der Konvertierung in und aus Binärdateien kann es zu Präzisionsverlusten kommen. Daher kann der Vergleich von Gleitkommawerten auf exakte Gleichheit unzuverlässig sein.
Lösungen für Präzisionsberechnungen
Um dieses Problem zu lösen, ziehen Sie die folgenden Ansätze in Betracht:
Zusätzliche Tipps:
Das obige ist der detaillierte Inhalt vonWarum führt meine PHP-Float-Berechnung zu einem „Fehler“ statt zu einem „Erfolg“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!