Rails number_to_currency 删除小数点右边的尾随零
Rails number_to_currency delete trailing zeroes right of decimal
我有一个动态生成的 table 乘以价格 * 数量。部分价格以美分计算。例如
如果一件商品的价格是 0.0375,我可以在我的 table 中显示为
number_to_currency(0.0375,:precision => 4)
=> [=12=].0375
但是我得到的是价格为标准的 2 位小数的数量
number_to_currency(33.95,:precision => 4)
=> .9500
我需要一种方法来 trim 十进制值的尾随零。请记住,输出位于 Model.each 块中,因此我不确定是否可以有条件地修改精度参数。
number_to_currency(33.95,:precision => 2)
由于 number_to_currency
returns 是一个字符串,您可以使用 .remove(/0+$/)
删除任何尾随零:
number_to_currency(33.95,:precision => 4).remove(/0+$/)
此方法的默认值为 2。因此您只需要
number_to_currency(33.95)
http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_to_currency
尝试指定 strip_insignificant_zeros
选项:
number_to_currency(33.95, precision: 4, strip_insignificant_zeros: true)
它应该删除小数点分隔符后的零。 Here是这个选项的描述。
尝试在 number_to_currency
之前使用 round
:
number_to_currency(33.95.round(4)) # .95
number_to_currency(0.0375.round(4)) # [=10=].0375
我有一个动态生成的 table 乘以价格 * 数量。部分价格以美分计算。例如
如果一件商品的价格是 0.0375,我可以在我的 table 中显示为
number_to_currency(0.0375,:precision => 4)
=> [=12=].0375
但是我得到的是价格为标准的 2 位小数的数量
number_to_currency(33.95,:precision => 4)
=> .9500
我需要一种方法来 trim 十进制值的尾随零。请记住,输出位于 Model.each 块中,因此我不确定是否可以有条件地修改精度参数。
number_to_currency(33.95,:precision => 2)
由于 number_to_currency
returns 是一个字符串,您可以使用 .remove(/0+$/)
删除任何尾随零:
number_to_currency(33.95,:precision => 4).remove(/0+$/)
此方法的默认值为 2。因此您只需要
number_to_currency(33.95)
http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_to_currency
尝试指定 strip_insignificant_zeros
选项:
number_to_currency(33.95, precision: 4, strip_insignificant_zeros: true)
它应该删除小数点分隔符后的零。 Here是这个选项的描述。
尝试在 number_to_currency
之前使用 round
:
number_to_currency(33.95.round(4)) # .95
number_to_currency(0.0375.round(4)) # [=10=].0375