首頁 >後端開發 >php教程 >[PHP浮點數問題] 如下的PHP程式碼輸出的原因是什麼?

[PHP浮點數問題] 如下的PHP程式碼輸出的原因是什麼?

WBOY
WBOY原創
2016-07-21 18:01:32849瀏覽

註解中是該行的輸出,可以看到當浮點數的個位數為6、7、8、9時,輸出的結果不符合預期。
var_dump(intval("10.40"*100)); // 1040
var_dump(intval("11.40"*100)); // 1140
var_dump(intval("12.40"*100) ; // 1240
var_dump(intval("13.40"*100)); // 1340
var_dump(intval("14.40"*100)); // 1440
var_dump(intval("155. *100)); // 1540
var_dump(intval("16.40"*100)); // 1639
var_dump(intval("17.40"*100)); // 1739
var_dumpval(intval ("18.40"*100)); // 1839
var_dump(intval("19.40"*100)); // 1939

回覆內容:

先看 關於PHP浮點數你該知道的(All ‘bogus’ about the float in PHP)
然後再看: PHP浮點數的一個常見問題的解答 具體解釋請參考這裡:
0.30000000000000004 原因是二進位無法精確表示1/10等等的小數,所有使用IEEE754標準儲存浮點數內容的語言都存在這個問(功)題(能)
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn