Rails PostgreSQL数字字段溢出ERROR

dca*_*xto 3 ruby database postgresql ruby-on-rails ruby-on-rails-3

我的架构上有一个十进制字段的价格,每次我尝试插入价格时,pg都带有此错误.谁能给我任何光?谢谢

组态

t.decimal  "price",  :precision => 2, :scale => 2
Run Code Online (Sandbox Code Playgroud)

错误

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"
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 7

我引用任意精度数字的手册:

数字的刻度是小数点右侧小数部分的小数位数.数字的精度是整数中有效数字的总数,即小数点两边的位数.

您不能将数字分配给>= 1数据类型的列numeric(2,2).小数点前没有数字空间.

0.999并且0.995也违反了类型,因为它们以1给定的2的比例舍入.