2016-03-27 13 views
2

Bigdecimal乗算に問題があります。私が列を持っている:Ruby BigDecimal乗算

t.decimal "average_price", precision: 8, scale: 2 

私のサンプルaverage_price"3.59280368"のように見えます。私はこの値でいくつかの計算をしようとすると、私が手:

@itam.average_price * 1000000 = 3590000 

なぜない3592803

+3

Rails?私はそれを使ったことはありませんでしたが、スケール:2は疑わしいようです。 – cremno

+0

はい、それはRails 4とRuby 2.3です。 –

答えて

4

よれrails api documentation

精度は有効桁数の合計であり、スケールは小数点以下格納できる桁数です。

したがって、データベースには、3.592803683.59として格納されます。

+0

うわー、それは私にとっては悪いニュースです。しかし、ありがとう –