首先抛出一个问题
var_dump((0.1 + 0.2) == 0.3);
这个判断是否正确呢?
它的输出是
false
是否和你想的一样呢?
--
浮点精度运算可以说是每个语言都必有的问题。因为这个是计算机的存储bug。
原理在网上也有很多,可是对于我们来说解决问题更重要。
--
关于浮点数的计算问题
1:首先考虑高精度 bc 计算函数
var_dump(bcadd(0.1, 0.2, 1) == 0.3); //true
其他函数 参见php手册关于bc函数
2:将浮点型转化为字符型进行计算
var_dump((0.1+0.2)."" == 0.3); // true
还有其他问题自己遇到话在补充