float表示浮点数,通俗点来说的话,我们可以简单理解为小数
参数有两个:
M表示精度,表示浮点数的位数
D表示标度,表示小数位数
M位数不包括小数点位数
举例:float(6,2)
则最大范围表示:-9999.99 ------ 9999.99
float所占空间范围
如果M<=24则占4个字节,否则占8个字节
最大范围10^-38 ------ 10^38
decimal也可以表示小数,但是和float存储不一样,decimal是分开存储,小数点和小数点前面的正数分开来存储
decimal要比float精确
float在取数据的情况下,小数点右边位数会出现偏差
银行如果存金融,在后边两位小数下,不建议用float或者decimal,直接用整型就可以,只是这时候数据库的数值表示存储的是分
float默认是有符号的
下面附上MySql 5.1手册的解释:
对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节。
FLOAT类型用于表示近似数值数据类型。SQL标准允许在关键字FLOAT后面的括号内选择用位指定精度(但不能为指数范围)。MySQL还支持可选的只用于确定存储大小的精度规定。0到23的精度对应FLOAT列的4字节单精度。24到53的精度对应DOUBLE列的8字节双精度。
MySQL允许使用非标准语法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。这里,“(M,D)”表示该值一共显示M位整数,