MySQL错误:第1行的列'amount'超出范围值

时间:2016-08-22 23:22:48

标签: mysql floating-point

的MySQL

create table tran (
id int,
amount float(9,3)
);

insert into tran (id, amount) values (1, -1000000)
;

错误:第1行列'amount'超出范围值

-1000000的数量是7位​​数,所以浮动中的9不足以绰绰有余吗?

手册说 “(M,D)表示可以存储的值最多为M位数”

http://dev.mysql.com/doc/refman/5.7/en/floating-point-types.html

http://sqlfiddle.com/#!9/aa6cc

1 个答案:

答案 0 :(得分:5)

FLOAT(9,3)表示:

  • 9 精度单位
  • 超过小数位数的3个单位,因此
  • 小数位前只有6个单位


如果您想要9位非小数精度,请使用FLOAT(12, 3)

查看MySQL documentation