我在我的Linux服务器上使用PHP 5.2.13。当我尝试四舍五入数字时,出现了奇怪的错误。这是我的测试案例:
<?php
echo " " . round(1.505, 2) . "\n";
echo " " . round(11.505, 2) . "\n";
echo " " . round(111.505, 2) . "\n";
echo " " . round(1111.505, 2) . "\n";
echo " " . round(11111.505, 2) . "\n";
echo " " . round(111111.505, 2) . "\n";
echo " " . round(1111111.505, 2) . "\n";
echo " " . round(11111111.505, 2) . "\n";
echo "" . round(111111111.505, 2) . "\n";
这是结果:
1.51
11.51
111.51
1111.51
11111.51
111111.51
1111111.5
11111111.51
111111111.51
有人知道是什么原因导致这个问题吗? 我无法更新PHP,因为它是共享服务器。
1111111.5049999999
。浮点数本质上是不精确的。而PHP5.3可能只是具有更多启发式方法。 - mario