简介
MySQL中,如果出现float字段,统计的时候经常出现不精确的小数。
解决方法
1、转换成整数进行存储
例如,金额可以精确到分,然后乘以100进行转换
操作统计的时候,再除以100
2、使用decimal代替float
例如:
money float => decimal(16,2)
统计的时候
select month, cast(sum(money) AS DECIMAL (16, 2)) as money from bills group by month;
3、使用binary关键字解决
select month, sum(binary(money)) as money from bills ;
总结
推荐是使用整数的方式,避免过多的函数转化,导致结果出现异常。