2015-01-15 68 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