2018/04/02 PHP 中的浮点数计算问题

时间:2023-03-10 01:13:25
2018/04/02 PHP 中的浮点数计算问题

首先抛出一个问题

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

还有其他问题自己遇到话在补充