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

回到顶部