失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MySQL数据库存储价格金额使用的数据类型中float double decimal的区别

MySQL数据库存储价格金额使用的数据类型中float double decimal的区别

时间:2021-04-12 11:10:27

相关推荐

MySQL数据库存储价格金额使用的数据类型中float double decimal的区别

float类型表示单精度浮点数值,double类型表示双精度浮点数值,float和double都是浮点型,而decimal是定点型;

MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如float(5,2)的 可显示为999.99,MySQL保存值时会进行四舍五入,如果插入999.009,则结果为999.01。

float和double在不指定精度时,默认会按照实际的精度来显示,而DECIMAL在不指定精度时,默认整数为10,小数为0。

先创建一个表:

CREATE TABLE test(

f FLOAT(10,2) DEFAULT NULL,

d DOUBLE(10,2) DEFAULT NULL,

de DECIMAL(10,2) DEFAULT NULL

);

insert三条数据如下所示:

INSERT INTO test(f,d,de) VALUES(1.23,1.23,1.23);

INSERT INTO test(f,d,de) VALUES(1.234,1.234,1.23);

INSERT INTO test(f,d,de) VALUES(1.234,1.234,1.234);

然后修改表结构并新增一条数据:

ALTER TABLE test MODIFY f FLOAT;

ALTER TABLE test MODIFY d DOUBLE;

INSERT INTO test(f,d,de) VALUES(1.234,1.234,1.234);

此时计算求和值如下图所示:

SELECT SUM(f),SUM(d),SUM(de) FROM test;

float和double求SUM的结果都是不精确的,只有decimal求SUM得到的是精准数值:

所以,decimal类型是适合财务和货币计算的128位数据类型。

/t1anyuan/article/details/70169524

/hanghangde/article/details/50483779?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

/article/87497.html

如果觉得《MySQL数据库存储价格金额使用的数据类型中float double decimal的区别》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。