PHP 浮點計算臭名昭著的精確度陷阱
處理數值資料時,精確度至關重要。然而,PHP 的 float 資料類型可能非常棘手,導致計算出現意外的不準確。
考慮以下 PHP 程式碼片段:
<code class="php">$fooValue = 100.68; $cowValue = 100.67; $diffValue = $fooValue - $cowValue; if($diffValue <= 0.01) { echo("success"); } else { echo("error"); }</code>
令我們驚訝的是,這段程式碼列印「error」而不是預期的「成功」。
原因:浮點不準確
罪魁禍首是浮點資料類型固有的不準確。當與二進制轉換時,精度可能會遺失。因此,比較浮點數值是否完全相等可能不可靠。
精確計算解決方案
要解決此問題,請考慮以下方法:
其他提示:
以上是為什麼我的 PHP 浮點計算結果是「錯誤」而不是「成功」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!