【问题标题】:PHP round precision bug?PHP圆形精度错误?
【发布时间】:2015-06-03 04:25:06
【问题描述】:

这是一个错误还是一些我不明白的数学问题?

round(58.900662, 2) => 58.9

最后一个零在哪里?

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

以下代码按预期执行

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

【问题讨论】:

标签: php rounding


【解决方案1】:

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

如果号码是1.569,那么round 将返回1.57

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

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

number_format()

【讨论】:

  • 是的,这就是他们显然需要的
  • 这应该在文档中指出。如果我明确地将岁差设置为 2,那么我想要逗号后的两个数字。
  • 逗号后面的两个数字。 ?
【解决方案2】:

您告诉它将其四舍五入到小数点后第二位,即 58.90。但是,58.90 可以简化为 58.9。是同一个号码。

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

【讨论】:

    猜你喜欢
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2015-05-30
    相关资源
    最近更新 更多