2015-01-15 69 views
0

我想比較一個BigIntegerBigDecimal。例如,整數10應該等於小數點10.0java - 比較BigInteger和BigDecimal

爲什麼以下返回錯誤?我從整數中創建一個新的小數,然後比較兩個小數。

System.out.println(new BigDecimal(BigInteger.valueOf(10)).equals(BigDecimal.valueOf(10.0))); 

這將返回true:

System.out.println(new BigDecimal(BigInteger.valueOf(10)).equals(BigDecimal.valueOf(10))); 

我該如何正確用在數學/人的定義(10 == 10.0)一BigDecimal比較一BigInteger

回答

1

對於BigInteger和BigDecimal的,你應該使用compareTo方法來檢查,如果他們的價值是一樣的

System.out.println(new BigDecimal(BigInteger.valueOf(10)).compareTo(BigDecimal.valueOf(10.0))); 
+0

@a_horse_with_no_name的compareTo!=等於 – assylias