0

我要圆

  • 如果数字非常小,则四舍五入直到第一位大于 0,然后四舍五入 2 位。像这样:

    值 = 0.00000012344 => 舍入值 = 0.00000012

    0.0035 至 0.0035

  • 如果只是随机浮点数,则昏迷后的 2 位数字,如下所示:

    76.543554 至 76.5

  • 否则,如果它是整数,则不做任何事情

    100 留 100

    44 停留 44

    ETC

我正在使用 ruby​​ 1.9.3 并且我尝试了 value.round(2) ,它只给了我 0.00 ,这并不让我满意。

4

1 回答 1

3

我认为 number_with_precision 是您问题的完美答案

要获得您正在寻找的结果,您应该设置选项:precision => 2:significant => true

对于您给定的示例,您将使用

number_with_precision(0.00000012344, :precision => 2, :significant => true)

number_with_precision(0.0035, :precision => 2, :significant => true)

number_with_precision(76.543554, :precision => 2, :significant => true)

如需进一步的精度,请参阅 Rails 文档http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_with_precision

于 2013-09-11T21:21:29.157 回答