我想要回合
如果数字真的很小,直到第一个数字大于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但这并不能让我满意。
答案 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