如何使用NumberHelper在Ruby中将所有数字格式化为数百万



Ruby新手-我正在尝试将任何数字(包括数千(转换为数百万,然后四舍五入到小数点后2位,例如:

1499962946.140625 => 1499.97
31135762.5 => 31.14
8952392.3125 => 8.95
77896 => 0.08
5342 => 0.01

我试着用下面的公式来做这件事,但到目前为止,它只正确地四舍五入了数百万,而数千仍然是数千。我还想从结果字符串中去掉"Million"one_answers"Thousand":

number_to_human(1234567.12345, precision: 2, significant: false)
=> "1.2 Million"
number_to_human(1234.12345, precision: 2, significant: false)
=> "1.23 Thousand"

此外,有没有办法保持零,例如1276.40而不是1276.4

谢谢!

做什么:

> (31135762.5 / 1000000).round(2)
# => 31.14

如果你想保留零,你可以这样做:

> sprintf('%0.02f', 1276.4)
# => "1276.40"

但现在你有了一根绳子。

如果你想你也可以放这是一个功能:

def format_number(num)
sprintf('%0.02f', num / 1000000)
end
format_number(31135762.5)
# => "31.14"
def doit(n)
(0.000001 * n).ceil(2)
end
doit(1499962946.140625) #=> 1499.97
doit(31135762.5)        #=>   31.14
doit(8952392.3125)      #=>    8.96
doit(77896)             #=>    0.08
doit(5342)              #=>    0.01

请参阅浮动#ceil。

对于第三个例子,问题显示所需的结果是8.95,这是通过简单的四舍五入获得的,但问题指出值应该是";。。。将向上取整至小数点后2位";。

最新更新