CREATE TABLE tmp_decimal( id BIGINT auto_increment PRIMARY KEY , amount DOUBLE );
创建测试表
插入测试数据
INSERT INTO tmp_decimal(amount)VALUES(73.6),(73.60),(73.61);
amount格式为double,数据的标度为插入时的标度,为0的自动去掉,所以第一条数据的小数位数为1位,第二条数据的小数位数为1位,第三条数据小数位数为2位
查看数据
id amount
1 73.6
2 73.6
3 73.61
当amount进行乘法运算时
SELECT id,amount*100 FROM tmp_decimal
id amount*100
1 7359.999999999999
2 7359.999999999999
3 7361
7360变成了7359.999999999999
本文通过创建测试表并插入不同格式的数据,详细解析了在数据库中使用Double类型时可能遇到的精度丢失问题。通过对比数据插入前后的变化,以及进行乘法运算后的结果,展示了Double类型在处理小数运算时的局限性。
5171

被折叠的 条评论
为什么被折叠?



