我有一个动态生成的表格乘以价格*数量。部分价格为部分美分。例如
如果商品的价格是0.0375,我可以在我的表格中显示
number_to_currency(0.0375,:precision => 4)
=> $0.0375
但是对于价格是标准的2位十进制数的数量,我得到了
number_to_currency(33.95,:precision => 4)
=> $39.9500
我需要一种方法来修剪十进制值的尾随零。请记住,输出位于Model.each块中,所以我不确定我是否可以有条件地修改precision参数。
答案 0 :(得分:17)
尝试指定strip_insignificant_zeros
选项:
number_to_currency(33.95, precision: 4, strip_insignificant_zeros: true)
它应该在小数分隔符后删除零。 Here是此选项的说明。
答案 1 :(得分:1)
此方法的默认值为2.所以您只需要
number_to_currency(33.95)
http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_to_currency
答案 2 :(得分:0)
number_to_currency(33.95,:precision => 2)
答案 3 :(得分:0)
由于number_to_currency
返回一个字符串,您可以使用.remove(/0+$/)
删除任何尾随零:
number_to_currency(33.95,:precision => 4).remove(/0+$/)
答案 4 :(得分:0)
尝试在round
之前使用number_to_currency
:
number_to_currency(33.95.round(4)) # $33.95
number_to_currency(0.0375.round(4)) # $0.0375