mysql查询的数值是85.70,但是mybatis里接到的值却是85.69999。如果查询的值大于100就不会出现这个问题。这是什么原因呢?
10 回答
慕后森
TA贡献1802条经验 获得超5个赞
pojo 是反向工程生产的吗,估计是你配置错了,信息给完整点,应该不会出现这个误差
还有一种解决思路,当你觉得很难处理这些值的精确度的时候,你可以用 字符串的形式,原原本本的保存起来
饮歌长啸
TA贡献1951条经验 获得超3个赞
应该是浮点数精度问题,Java对象中对应字段类型是float?如果只是查询不需要运算建议改成double。
Java不擅长浮点数运算,如果要进行加减乘除运算的话,建议将字段改成java.math.BigDecimal类型进行。
或者将Java的字段field类型改为long,sql语句中用select field*100,处理完了之后再转成double并除以100。
添加回答
举报
0/150
提交
取消