采取以下代碼:echo round(1215.49999);我得到的答案是1215,這就是我想要的。但是,當(dāng)您編寫此代碼時(shí):echo round(1215.499999999999999);我得到的答案是1216。這有什么特別的原因嗎?我想1215在這兩種情況下都結(jié)束。
2 回答

當(dāng)年話下
TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

手掌心
TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果輸入 1215.499999999999999 從 php 被解釋為浮點(diǎn)數(shù),那么一切都為時(shí)已晚。這個(gè)數(shù)字與 1215.5 相同
一個(gè)測試:
var_dump(1215.499999999999999 === 1215.5); //bool(true)
如果要對輸入進(jìn)行四舍五入,則必須使用 bcmat 并且輸入為字符串。
$input = '1215.499999999999999';
echo bcadd($input,0.5,0); //1215
$input = '1215.5000000000000000';
echo bcadd($input,0.5,0); //1216
- 2 回答
- 0 關(guān)注
- 208 瀏覽
添加回答
舉報(bào)
0/150
提交
取消