This question already has answers here:
Equals operator for zeros (BigDecimal / Double) in Java

(7个答案)


5年前关闭。




我想将BigIntegerBigDecimal进行比较。例如,整数10应该等于十进制10.0

为什么以下返回false?我从整数创建一个新的十进制,然后比较两个十进制。

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)));


如何在数学/人为定义中正确比较BigIntegerBigDecimal(10 == 10.0)?

最佳答案

对于BigInteger和BigDecimal,应使用compareTo方法检查其值是否相同

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

关于java - java-比较BigInteger与BigDecimal ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27963819/

10-14 02:23