Heim > Artikel > Backend-Entwicklung > Warum sind meine PHP-Float-Vergleiche ungenau?
Genauigkeit der PHP-Gleitkommaberechnung: Präzisionsherausforderungen meistern
Bei der Arbeit mit Gleitkommaberechnungen in PHP stoßen Entwickler häufig auf Genauigkeitsprobleme. In diesem Artikel geht es um ein spezielles Problem, mit dem ein Benutzer konfrontiert war, der versuchte, zwei Gleitkommawerte mit einer Toleranz von 0,01 zu vergleichen, dabei aber auf unerwartete Ergebnisse stieß.
Um das Problem zu verstehen, schauen wir uns den bereitgestellten Code genauer an:
<code class="php">$fooValue = 100.68; $cowValue = 100.67; $diffValue = $fooValue - $cowValue; if($diffValue <= 0.01) { echo("success"); } else { echo("error"); }</code>
In diesem Beispiel wird das Ergebnis als „Fehler“ ausgegeben, da Gleitkommaberechnungen in PHP aufgrund von Ungenauigkeiten in der Binärdarstellung nicht genau sind. Das bedeutet, dass, obwohl sich $fooValue und $cowValue mathematisch um 0,01 unterscheiden, ihre internen Binärdarstellungen diesen Wert möglicherweise nicht perfekt widerspiegeln.
Um diese Herausforderung zu meistern, bietet PHP alternative Lösungen:
Das obige ist der detaillierte Inhalt vonWarum sind meine PHP-Float-Vergleiche ungenau?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!