mysql查询的数值是85.70,但是mybatis里接到的值却是85.69999。如果查询的值大于100就不会出现这个问题。这是什么原因呢?
mysql查询的数值是85.70,但是mybatis里接到的值却是85.69999。如果查询的值大于100就不会出现这个问题。这是什么原因呢?
pojo 是反向工程生产的吗,估计是你配置错了,信息给完整点,应该不会出现这个误差
还有一种解决思路,当你觉得很难处理这些值的精确度的时候,你可以用 字符串的形式,原原本本的保存起来
应该是浮点数精度问题,Java对象中对应字段类型是float?如果只是查询不需要运算建议改成double。
Java不擅长浮点数运算,如果要进行加减乘除运算的话,建议将字段改成java.math.BigDecimal类型进行。
或者将Java的字段field类型改为long,sql语句中用select field*100,处理完了之后再转成double并除以100。
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
这个貌似是由于:小数转二进制后可能会有一定误差。你拿到数据处理一下吧。