PHP 圆精度错误?

PHP round precision bug?

这是错误还是我不懂的数学问题?

round(58.900662, 2) => 58.9

最后一个零在哪里?

编辑: 在我看来,文档缺少信息。

下面的代码符合预期

number_format(round(58.900662, 2), 2) => 58.90

你告诉它把它四舍五入到小数点后第二位,即 58.90。但是,58.90 可以简化为 58.9。是同一个数字。

如果你想强制显示两位小数,你可以使用 PHP 的 number_format() 函数。

如果该数字不是 0

round 将负责精度,因为最后一个 0 在任何数学运算中都没有影响。

如果数字是 1.569 那么 round 将 return 1.57

如果你想要 0 你可以使用 -

number_format(58.900662, 2, '.', ',');

number_format()