前两天测试发现一个Bug,告诉我说他明明只修改了订单详情中商品的数量,为何提示说订单中商品单价不能修改(后台限制了特殊单子的单价不能修改),可是他明明没有修改商品的单价,这就很奇怪了。我看了下入参,修改接口传的该商品的单价为price=222,数据库中该商品的单价为222.000000。该字段为BigDecimal类型,除了精度不同,值是相等的,然后台校验相等用的是equals。而网上查资料BigDecimal用的比较多的是compareTo方法。数据库
public class BigDecimalDemo {
public static void main(String [] args) {
BigDecimal decimal1 = new BigDecimal("222");
BigDecimal decimal2 = new BigDecimal("222.000000");
System.out.println(decimal1.equals(decimal2));
System.out.println(decimal1.compareTo(decimal2));
}
}
复制代码
运行结果bash