我有一个像这样的产品专栏:
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.23
,500.00
将存储为500.00
。
在Ruby on Rails中,它们将表示为BigDecimal
。该BigDecimal
会不知道这是在数据库中使用的格式。如果其值为500.0
,则其to_s
方法将其输出为,500.0
因为这足够准确。
要将值格式化为货币,请使用number_to_currency
辅助方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句