bigdecimal大小比較(BigDecimal比較建議用compareTo)
2023-04-16 21:19:17 1
bigdecimal大小比較?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)); }},我來為大家科普一下關於bigdecimal大小比較?以下內容希望對你有幫助!

bigdecimal大小比較
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)); }}
運行結果不出所料,BigDecimal的equals方法當精度不一樣的時候也當做不相等,而compareTo方法卻可以忽略精度的不同,只比較數值是否相同。
接著查看源碼
源碼裡說的很詳細,equals方法比較value和scale(數值和精度),精度不一樣,也返回false。
compareTo也說得很詳細,數值相同但是精度不同的兩個數(例如2.0和2.00)被認為是相等的兩個數,返回0。另外對於a.compareTo(b)方法
ab, 返回1,