例如0.01+0.01+0.01=0.03,结果sum后变为了0.029999994
这是因为mysql做数据存取时,数据库引擎对浮点数的精度扩展 和截断处理策略不一致,导致数据精度不一致会发生丢失
因为decimal类型是可以确定精度,所以需要使用cast转换格式为decimal
处理样例如下:
原: select sum(totalmoney) as amt ......
改后:select sum(cast(totalmoney as decimal(18,2))) as amt ......