Rails中的number_to_currency如何删除小数点右侧的末尾零?

10

我有一个动态生成的表格,可以将价格乘以数量。其中一些价格包含部分美分。例如,如果某个商品的价格为0.0375美元,我可以在表格中显示为:

number_to_currency(0.0375,:precision => 4)
=> $0.0375

但是在价格为标准2位小数的数量上,我得到了:

number_to_currency(33.95,:precision => 4)
  => $39.9500

我需要一种方法来去除十进制数值的尾随零。请注意,输出位于Model.each块中,因此我不确定能否有条件地修改精度参数。

5个回答

24

尝试指定strip_insignificant_zeros选项:

number_to_currency(33.95, precision: 4, strip_insignificant_zeros: true)

它应该在小数点后面删除零。这里是关于此选项的描述。


谢谢!这个答案符合我的要求,因为number_to_currency在循环内部。 - ctilley79

1

0
number_to_currency(33.95,:precision => 2)

0

由于number_to_currency返回一个字符串,您可以使用.remove(/0+$/)来删除任何尾随的零:

number_to_currency(33.95,:precision => 4).remove(/0+$/)

0

尝试在使用 number_to_currency 前加入 round

number_to_currency(33.95.round(4)) # $33.95
number_to_currency(0.0375.round(4)) # $0.0375

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接