在Rails中将任意数字缩减为3位人类可读数字

时间:2013-01-29 15:49:47

标签: ruby-on-rails ruby

在Rails中有很多不错的'人'助手,但在我的情况下,我必须用点分隔符和单字母单位(千 - 'k',百万 - '米'等)将数字缩短为3位数

number_to_human(number, strip_insignificant_zeros: true, precision: 2).gsub(/ /,'')

这个助手做得很好,除了我需要25454才能变成25.5k而不是25.45k。

一般情况下,我需要根据点前面的位数将'precision'选项设置为1或2。

我可以用自己的助手包装number_to_human并用自己的方式计算精度,但我想知道是否还有其他方式,也许是一些Ruby魔法或类似的东西。

感谢。

1 个答案:

答案 0 :(得分:0)

docs表示precision的含义受significant的设置控制。默认情况下,它是有效位数。如果设置significant: false, precision: 1,您将获得所需的效果,即您只想要小数点后面的一位数。