【发布时间】:2021-03-16 14:52:08
【问题描述】:
嗨!
我一直在尝试用 PHP 对数字进行四舍五入,但出现了精度错误。
$test = 53.974999994;
echo round($test, 2);
我想要的结果是 53.98。
但是这段代码给了我 53.97。
谁能告诉我为什么?
谢谢!
【问题讨论】:
-
您能否详细说明您认为结果错误的原因?
-
这个四舍五入的数字表应该有助于解释 - factmonster.com/math-science/mathematics/…
-
是的,它被忽略了,因为这就是数学的运作方式。
53.974999994小于53.975,因此向下舍入。 -
不,您只检查下一个有效数字(因此,如果四舍五入到两位,则查看第三位)。因此,在这种四舍五入的情况下(默认算法),这是预期的结果。
-
我认为您必须考虑将 Pi 舍入到 12 位可能的计算要求。如果您在进行四舍五入时考虑到所有数以亿计的小数位,那么您肯定能够将前往 Alpha Centori 的快速旅行纳入所需的时间:)