Decimal, Float, Double的区别
float类型表示单精度浮点数值,double类型表示双精度浮点数值,float和double都是浮点型,而decimal是定点型;
MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如float(5,2)的 可显示为999.99,MySQL保存值时会进行四舍五入,如果插入999.009,则结果为999.01。
先创建一个表:
CREATE TABLE test1(
a FLOAT,
b DOUBLE,
c DECIMAL(10,2)
);
插入数据
insert into test1 values(1.1,1.1,1.1);
insert into test1 values(1.11,1.11,1.11);
表数据
查看结果
select sum(a),sum(b),sum(c) from test1;
在加一条数据
insert into test1 values(1.111,1.111,1.111);
表数据
查看结果
清楚可见,decimal的精确度
Decimal在什么时候使用
凡是跟钱相关的都需要使用 Decimal