php浮點數float運算中轉整型int問題

2020-07-16 10:06:17

php浮點數float運算中轉整型int:php中浮點數是弱型別,對於整數或者經過運算以後結果是整數的浮點數,php能當作整數對待,程式碼為【intval(round(floatval($value) * 100))】。

php浮點數float運算中轉整型int:

執行這段程式碼:

$f = 0.58;
var_dump(intval($f * 100.0));

也許你認為他會輸出58,但是實際上他輸出的是57.
原因是作為浮點型資料,其精度已經損失了一部分,達不到完全精確。所以永遠不要相信浮點數結果精確到了最後一位,也永遠不要比較兩個浮點數是否相等。

php中浮點數是弱型別,對於整數或者經過運算以後結果是整數的浮點數,php能當作整數對待,但型別還是浮點型不變。但如果經過運算以後不是整數,那php就把結果當作嚴格的浮點數對待了

在實際的開發中我們可以使用如下邏輯來解決這種境況

intval(round(floatval($value) * 100));

以上就是php浮點數float運算中轉整型int問題的詳細內容,更多請關注TW511.COM其它相關文章!