9

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

如果一个项目的价格是 0.0375 我可以在我的表中显示为

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

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

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

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

4

5 回答 5

23

尝试指定strip_insignificant_zeros选项:

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

它应该删除小数分隔符后的零。是此选项的说明。

于 2015-05-20T18:16:57.847 回答
1

此方法的默认值为 2。所以你只需要

number_to_currency(33.95)

http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_to_currency

于 2015-05-20T18:16:55.533 回答
0
number_to_currency(33.95,:precision => 2)
于 2015-05-20T18:14:55.077 回答
0

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

number_to_currency(33.95,:precision => 4).remove(/0+$/)
于 2015-05-20T18:15:45.067 回答
0

尝试使用round之前number_to_currency

number_to_currency(33.95.round(4)) # $33.95
number_to_currency(0.0375.round(4)) # $0.0375
于 2015-05-20T18:25:58.830 回答