Java,比较BigInteger值
BigInteger bigInteger = …;
if(bigInteger.longValue() > 0) { //original code //bigger than 0
}
//should I change to this?
if(bigInteger.compareTo(BigInteger.valueOf(0)) == 1) {
//bigger than 0
}
我需要比较一些任意的BigInteger值。我想知道哪种方法是正确的。鉴于以上代码,应使用哪一个?原始代码在顶部。我正在考虑将其更改为第二种方法。
回答:
如果要测试BigInteger是否具有正值,则第一种方法是错误的:longValue
仅返回 低阶64位
,这可能会还原符号…因此,对于正的BigInteger,测试可能会失败。
另一种选择:如果值为正,则BigInteger#signum
返回1
:
if (bigInteger.signum() == 1) { // bigger than 0
}
以上是 Java,比较BigInteger值 的全部内容, 来源链接: utcz.com/qa/407903.html