在Ruby中将十进制数转换为价格格式

4

嘿,我正在使用 Ruby on Rails 框架,有一个价格变量是十进制的。自然地,$39.99 这样的值没问题,但当价格为 $39.90 时,我的应用程序显示价格为 $39.9。我该如何更改它?

我的视图

%b 价格

= @product.price

3个回答

9

Rails包含number_to_currency(@product.price)助手。这个助手更简单易记。


5

这里的标准答案是使用sprintf

sprintf("$%2.2f", @product.price)

这将使用美元符号作为前缀,将数字格式化为两位小数。

1
如果您愿意,可以编写自定义辅助方法来实现此操作。
def num_to_currency price
  "$#{price.to_i}."+"#{(price % 1.0)}"[2..3]
end

1.9.3 (main):0 > num_to_currency 6.90
=> "$6.90"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接