小编典典

处理货币/金钱的最佳方法是什么?

all

我正在开发一个非常基本的购物车系统。

我有一个表items,其中有一列pricetype integer

对于包含欧元和美分的价格,我无法在我的视图中显示价格值。就在 Rails 框架中处理货币而言,我是否遗漏了一些明显的东西?


阅读 89

收藏
2022-04-04

共1个答案

小编典典

您可能希望DECIMAL在数据库中使用一种类型。在您的迁移中,请执行以下操作:

# precision is the total number of digits
# scale is the number of digits to the right of the decimal point
add_column :items, :price, :decimal, :precision => 8, :scale => 2

在 Rails 中,:decimal类型返回为BigDecimal,这对于价格计算非常有用。

如果您坚持使用整数,您将不得不在BigDecimal任何地方手动转换为 s 和从 s 转换,这可能会变得很痛苦。

正如 mcl 所指出的,要打印价格,请使用:

number_to_currency(price, :unit => "€")
#=> €1,234.01
2022-04-04