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

WBOY
發布: 2016-07-21 18:01:32
原創
801 人瀏覽過

註解中是該行的輸出,可以看到當浮點數的個位數為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標準儲存浮點數內容的語言都存在這個問(功)題(能)
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板