首頁  >  文章  >  後端開發  >  php浮點數float運算中轉整數int問題

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

coldplay.xixi
coldplay.xixi原創
2020-07-13 10:50:092924瀏覽

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

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

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

執行這段程式碼:

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

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

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

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

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

相關學習推薦:PHP程式設計從入門到精通

以上是php浮點數float運算中轉整數int問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn