MySQL错误:第1行的列“金额”超出范围值

dav*_*jhp 2 mysql floating-point

的MySQL

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

insert into tran (id, amount) values (1, -1000000)
;
Run Code Online (Sandbox Code Playgroud)

错误:第1行的“金额”列超出范围值

-1000000的数量是7位​​数字,那么浮点数中的9是否足够?

手册说:“((M,D)表示总共最多可以存储M位数字”

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

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

Tim*_*sen 8

FLOAT(9,3) 手段:

  • 9个精度单位
  • 小数点后3个单位,因此
  • 小数点仅6个单位


如果要9位非十进制精度,请使用FLOAT(12, 3)

看一下MySQL 文档