3

スキーマに価格の小数フィールドがあり、価格を挿入しようとするたびに、pgにこのエラーが表示されます。誰かが私に光を与えることができますか?ありがとう

構成

t.decimal  "price",  :precision => 2, :scale => 2

エラー

PG::Error: ERROR:  numeric field overflow
DETAIL:  A field with precision 2, scale 2 must round to an absolute value less than 1.
: INSERT INTO "items" ("category_id", "name", "price", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) RETURNING "id"
4

1 に答える 1

7

Arbitrary Precision Numbersのマニュアルを引用します。

数値の位取りは、小数点の右側にある小数部分の桁数です。数値の精度は、整数の有効桁数の合計、つまり小数点の両側の桁数です。

>= 1データ型の列に数値を割り当てることはできませんnumeric(2,2)。小数点の前に数字の余地がありません。

0.999また、指定されたスケール20.995に丸められるため、型にも違反しています。1

于 2012-05-15T22:57:57.050 に答える