rails十进制比例=> 2不起作用

瑞安·莱

我有一个像这样的产品专栏:

t.decimal :price, :precision => 12, :scale => 2

并继续返回500.0,而不是预期的两位十进制500.00。然后,我尝试通过控制台手动更改产品价格,它只能保存1个小数位。

>product.price = 500.00
=> 500.0
>product.price
=> #<BigDecimal:7ff479c6ba40,'0.5E3',9(36)>

如何获取小数点列以保存并返回两个小数位?

他们不漂亮

scale指定保留在数据库中的小数点后的位数。保存1.234将四舍五入1.23500.00将存储为500.00

在Ruby on Rails中,它们将表示为BigDecimalBigDecimal会不知道这是在数据库中使用的格式。如果其值为500.0,则其to_s方法将输出为,500.0因为这足够准确。

要将值格式化为货币,请使用number_to_currency辅助方法。

另请参见Ruby on Rails:处理货币/金钱的最佳方法,以及Ruby是否有任何数字格式设置类?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章