RoR十进制字段:precision => 10,:scale => 6不存储小数

时间:2014-11-02 01:15:52

标签: ruby-on-rails ruby decimal precision bigdecimal

我有一个十进制字段,不存储小数,虽然模式文件说:

t.decimal  "kg", :precision => 10, :scale => 6

如果我这样做:

(15,000 * 1,010)/1,000,000 

应为15.15

它只会显示15.00

在DDBB上:

BigDecimal:7fd4cc707300,'0.15E2',9(36)

1 个答案:

答案 0 :(得分:1)

我认为15而不是15.15的结果是Fixnum分工的方式。如果您想在结果中使用小数,则需要在操作数中包含小数:

示例:

# Decimal on denominator
> (15000 * 1010)/1000000.0
=> 15.15

# or, on numerator
> (15000.0 * 1010)/1000000
=> 15.15

然后,您可以使用此值存储在kg字段中。