LOADING STUFF...

PHP中浮点数计算比较及取整不准确的解决方法

技术教程5小时前更新 北陌
7 0 0

PHP中浮点数计算比较及取整不准确的解决方法

浮点数计算结果比较

一则浮点数计算例子如下:
$a = 0.2 0.7;

$b = 0.9;

var_dump($a == $b);

打印出的结果是:bool(false)。也就是说在这里 0.2 0.7 的计算结果与 0.9 并不相等,这显然是有违我们的常识的。

对此问题,PHP官方手册曾又说明:显然简单的十进制分数如 0.2 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 1/3 变成了 0.3333333…。

我们将上面的变量用双精度格式打印出来:

$a = 0.2 0.7;

$b = 0.9;

printf(“%0.20f”, $a);

echo

© 版权声明

相关文章

暂无评论

暂无评论...