前兩天測試發現一個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