MySQL中 SUM 函数导致的精度丢失问题

MySQL中,float和double都是属于浮点数类型。但是,由于CPU在处理浮点数时会产生舍入误差,因此本质上浮点数的计算是不精确的

在使用MySQL的Sum函数计算浮点数时,由于存在舍入误差,可能会导致计算结果出现多个小数点的情况。这是由于Sum函数在对浮点数进行累加时,由于精度问题而出现的结果

因此 select sum(`column1`) from table1; 可能存在问题
常见的一个解决方案为:

select round(sum(`column1`) , 2) from table1; 意思为保留2位小数

其它的建议如还是把数据库字段由 float double 改为 decimal 来提高精度来避免出现更多小数的瓦内特

原创文章,作者:witersen,如若转载,请注明出处:https://www.witersen.com

(1)
witersen的头像witersen
上一篇 2023年9月16日 上午3:23
下一篇 2023年11月25日 下午9:02

相关推荐

发表回复

登录后才能评论