Rails中的人类可读价格

时间:2014-05-05 06:50:03

标签: ruby-on-rails

我正在寻找能够像这样回应价格的功能:

17.0 #=> 17
17.5 #=> 17.50

number_to_currency以非常熟悉的方式工作,但如果没有分数,仍会回声$17.00 :(

2 个答案:

答案 0 :(得分:2)

如果您仍想使用number_to_currency,那么您可以通过一种方式获得您想要的工作:

number_to_currency(17.0).chomp(".00") => "$17"
number_to_currency(17.5).chomp(".00") => "$17.50"

这样就剥掉了结局" .00"如果存在

chomp(*args):"返回一个新的String,其中给定的记录分隔符从str的末尾删除(如果存在)。" http://apidock.com/ruby/String/chomp

答案 1 :(得分:1)

您将会像strip_insignificant_zeros那样寻找:

number_to_currency("17.00", strip_insignificant_zeros: false) #-> $17.00
number_to_currency("17.00", strip_insignificant_zeros: true) #-> $17