采取以下代码:echo round(1215.49999);我得到的答案是1215,这就是我想要的。但是,当您编写此代码时:echo round(1215.499999999999999);我得到的答案是1216。这有什么特别的原因吗?我想1215在这两种情况下都结束。
2 回答
手掌心
TA贡献1942条经验 获得超3个赞
如果输入 1215.499999999999999 从 php 被解释为浮点数,那么一切都为时已晚。这个数字与 1215.5 相同
一个测试:
var_dump(1215.499999999999999 === 1215.5); //bool(true)
如果要对输入进行四舍五入,则必须使用 bcmat 并且输入为字符串。
$input = '1215.499999999999999';
echo bcadd($input,0.5,0); //1215
$input = '1215.5000000000000000';
echo bcadd($input,0.5,0); //1216
- 2 回答
- 0 关注
- 182 浏览
添加回答
举报
0/150
提交
取消