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

相关推荐

  • MySQL用户远程登陆权限与数据库权限

    1、修改用户登录权限 查询当前用户和登录权限 更改为允许任何IP地址登录 更改为指定IP地址登录 2、修改用户数据库权限 为已存在的用户授予所有数据库权限 为已存在用户授予指定数据…

    2021年1月2日
    1.3K0

发表回复

登录后才能评论