MySql数据类型分析(数值(小数型)类型) Part2
一.小数型 包括两种类型:
1.浮点型 Float(M,D)
2.定点型 decimal(M,D)
二.M,D分析
1.小数型中的M和整数中的M 大不相同;
2.整数中的M 与所存数据的大小没有关系,只在有ZEROFILL修饰符时,控制显示填充零的为数有关。
3.小数中的M与所存数据的大小有必然关系,假如 申请类型为:float(6,2):其中,6代表小数类型为 不包括小数点在内为6为,其中2代表小数位,因此,能存入-9999.99到+9999.99
4.如果Float(6,2) 带有标示符 Unsigned,则此数据类型的存储范围为:0.00到+9999.99
举例:
创建表goods:
create table goods
(
name varchar(10) not null default ' ',
price float(6,2) not null default 0.00
) charset utf8;
插入一条数据:
insert into goods
(name,price)
values
('跑步机',688.896);
点击回车,执行成功;
三.大家可以看到,已经成功插入到goods表中,
其中,小数 688.896 经舍入法 进行了截取,
Mysql中默认的舍入法 是 银行家舍入法,下一篇将说明 银行家舍入法。
四.定点类型
decimal(M,D)
分析:
1.定点类型和浮点类型 用法差不多,区别就是定点类型的精度比浮点类型的精度高。
举例:
在foods表中增加两列
alter table foods
add
bigprice float(9,2) not null default 0.00;
alter table foods
add
decimprice decimal(9,2) not null default 0.00;
插入一条数据:
insert into foods
(name,bigprice ,decimprice )
values
('自行车',1234567.23,1234567.23);
执行结果:
由此看出,decimal类型更精确
五.小数类型在内存中占用的字节
小数类型在内存中占用的字节数是固定的,并不是说,你输入M的值大,字节数就会变大。
小数类型 在计算机中占用4个字节,或8个字节,小数类型的计算非常复杂。