如何在逗号后将值舍入为2位或在Rails 3中将第一个数字大于0

时间:2013-09-11 15:43:35

标签: ruby-on-rails-3 ruby-1.9.3

我想要回合

  • 如果数字真的很小,直到第一个数字大于0然后再舍入2个数字。像这样:

    value = 0.00000012344 => rounded_value = 0.00000012

    0.0035至0.0035

  • 昏迷后2位数,如果它只是随机浮点数,就像这样:

    76.543554至76.5

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

    100次100

    44岁44

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

1 个答案:

答案 0 :(得分: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 doc http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_with_precision