PHP-Gleitkomma-Subtraktion ist nicht gleich 0
PHP-Gleitkomma-Subtraktion ist nicht gleich 0, weil die Computer Wenn Dezimalzahlen in Binärzahlen umgewandelt werden, geht die Präzision verloren, sodass die Funktion bcadd() zum Addieren und Subtrahieren von Gleitkommazahlen und zur Durchführung einer Präzisionsumwandlung verwendet werden kann.
Um zu bestimmen, ob eine Gleitkommazahl gleich 0 ist, verwenden wir nicht $num == 0, sondern abs($d) < Dieses EPS ein sehr kleiner Wert.
Da es sich um Gleitkommadaten handelt, ist ein Teil ihrer Genauigkeit verloren gegangen und sie können nicht vollständig genau sein. Vertrauen Sie also niemals darauf, dass das Ergebnis einer Gleitkommazahl bis zur letzten Ziffer genau ist, und vergleichen Sie niemals zwei Gleitkommazahlen auf Gleichheit. Es ist zu beachten, dass dies kein Problem mit PHP ist, sondern ein Problem mit der computerinternen Verarbeitung von Gleitkommazahlen! Das gleiche Problem tritt in Sprachen wie C und JAVA auf. Ein Beispiel für eine Gleitkommaberechnung lautet wie folgt:$a = 0.2+0.7; $b = 0.9; var_dump($a == $b);
var_dump(bcadd(0.2,0.7,1) == 0.9); // 输出:bool(true)
PHP-Chinese-Website!
Das obige ist der detaillierte Inhalt vonPHP-Gleitkomma-Subtraktion ist ungleich 0. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!