Rya*_*lay 1 ruby-on-rails ruby-on-rails-4
我有一个像这样的产品专栏:
t.decimal :price, :precision => 12, :scale => 2
Run Code Online (Sandbox Code Playgroud)
并且它保持返回500.0而不是预期的两位小数500.00.然后我尝试通过控制台手动更改产品价格,它只会节省1位小数.
>product.price = 500.00
=> 500.0
>product.price
=> #<BigDecimal:7ff479c6ba40,'0.5E3',9(36)>
Run Code Online (Sandbox Code Playgroud)
如何获取十进制列以保存并返回两位小数?
scale指定在数据库中保留小数点后的位数.保存1.234将舍入到1.23,500.00将存储为500.00.
在Ruby on Rails中,它们将被表示为BigDecimal.该BigDecimal会不知道这是在数据库中使用的格式.如果它的值是500.0,它的to_s方法将输出它,500.0因为它足够准确.
要将值格式化为货币,请使用number_to_currency辅助方法.
另请参见Ruby on Rails的:处理货币/钱最好的方法和是否红宝石有任何数字格式类?
| 归档时间: |
|
| 查看次数: |
1110 次 |
| 最近记录: |