今天开发途中遇到一个很奇怪的bug,前端传来一个小数值0.5,java使用mybatis后存到数据库时变为了1。我看了下数据库这个字段的类型是double,这个肯定不会错,然后给了个默认值是1。所以这种情况我肯定先想到的是:
-
是不是前端传来的值用java DTO接收时那个值没设置进去,Double类型的该字段为null,所以插入记录到mysql时,由 于该字段没值,所以使用默认值1;
- 是不是Entity里没有getter和setter?---代码生成+检查——>排除。
- 数据库建表时字段问题?
排除了第一种和第二种,那么问题就出在字段设置上了。

原来是忽略了小数点后的问题,设置为0了才导致的问题。
改为 9 2 后完美解决。

Java小数存储Bug
本文描述了一种在Java中处理小数数据时遇到的奇怪问题,即前端传递的小数值在MyBatis操作后,存储到数据库时变为整数。通过排查,发现问题是由于对小数点后的精度设置不当造成的。






