可能重复:
PHP 数学精度
在 PHP 中处理货币值的最佳实践?
我真的希望有人能提供帮助。在这个问题上,我一直在用头撞砖墙。
情况如下:我有一个结帐,计算折扣后的小计为 -11.50 英镑。然后加上 11.50 英镑的运费,恕我直言,应该等于 0 英镑。
然而,当计算运行时,它返回一个浮点数 2.8421709430404E-14
在我的调试工作中,我这样做了:
var_dump(
$build['total'], // float(-11.5)
$build['delivery'], // float(11.5)
(($build['total'])+($build['delivery'])) // float(2.8421709430404E-14)
);
但是,当我进行静态计算时:
var_dump((-11.5 + 11.5)); // float(0)
有任何想法吗?