文档章节

为什么php中echo intval((0.1+0.7)*10) 结果为7而不是8?

猴亮屏
 猴亮屏
发布于 2014/05/16 17:58
字数 342
阅读 30
收藏 0
如果你仔细看过在PHP手册中,对于浮点数据类型的说明,就会看到其中有专门的一个警告提示,就谈到这个问题:

关于浮点数精度的警告:显然简单的十进制分数如同 0.1 或 0.7不能在不丢失一点点精度的情况下转换为内部二进制的格式。

这就会造成混乱的结果:

例如,floor((0.1+0.7)*10)通常会返回 7 而不是预