我在Rails 4应用上面临Ruby BigDecimal的问题。
我在Thing模型中有一个“price”属性,该类是BigDecimal。每当我创建或更新Thing时,我都希望将“price”属性严格保存为两位小数(例如“0.00”,“10.00”,“10.10”,“10.01”)。
但默认情况下,如果不需要两个十进制数字,它只会保存一个十进制数字。这是我插入的内容以及它当前保存的内容:
"0" => "0.0" (instead of "0.00")
"10" => "10.0" (instead of "10.00")
"10.1" => "10.1" (instead of "10.10")
"10.01" => "10.01" (OK)
我不只是想显示带有两位小数的“price”属性(可以使用"%.2f" % price
来完成),我想在我的数据库中保存带有两位小数的“price”属性。有没有办法呢?
非常感谢你的帮助。
答案 0 :(得分:2)
在我看来,你所描述的纯粹是出于展示目的。我不知道如何将小数保存到具有特定小数位数的数据库,除非将它们保存为字符串,否则实际上不会增加精度。
在我看来,你最好在Thing模型上创建一个方法,它会以你想要的方式返回价格。