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

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

 

  

 

posted @ 2018-04-02 21:24  Zzz哈  Views(135)  Comments(0Edit  收藏  举报