Rails number_to_currency删除十进制右边的尾随零

时间:2015-05-20 18:08:40

标签: ruby-on-rails ruby number-to-currency

我有一个动态生成的表格乘以价格*数量。部分价格为部分美分。例如

如果商品的价格是0.0375,我可以在我的表格中显示

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

但是对于价格是标准的2位十进制数的数量,我得到了

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

我需要一种方法来修剪十进制值的尾随零。请记住,输出位于Model.each块中,所以我不确定我是否可以有条件地修改precision参数。

5 个答案:

答案 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