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