📅  最后修改于: 2023-12-03 14:42:12.516000             🧑  作者: Mango
在 Java 8 中,BigInteger 类新增了 longValueExact() 方法,用于将 BigInteger 对象转换为 long 型。如果转换后的值超出了 long 类型的范围,则抛出 ArithmeticException 异常。
public long longValueExact()
该方法不接受任何参数。
返回 BigInteger 对象对应的 long 值。
如果返回值超出了 long 类型的范围,则抛出 ArithmeticException 异常。
下面是一个使用 longValueExact() 方法的示例:
import java.math.BigInteger;
public class BigIntegerTest {
public static void main(String[] args) {
BigInteger bigInt = new BigInteger("123456789123456789");
System.out.println("BigInteger value: " + bigInt);
try {
long longValue = bigInt.longValueExact();
System.out.println("long value: " + longValue);
} catch(ArithmeticException e) {
System.out.println("Cannot convert BigInteger to long: " + e.getMessage());
}
}
}
输出结果:
BigInteger value: 123456789123456789
Cannot convert BigInteger to long: BigInteger out of long range
在上面的代码中,我们创建了一个 BigInteger 对象 bigInt,并调用其 longValueExact() 方法将 BigInteger 对象转换为 long 型。由于 bigInt 的值超出了 long 类型的范围,因此会抛出 ArithmeticException 异常。
longValueExact() 方法是 Java 8 中 BigInteger 类新增的一个方法,可将 BigInteger 对象转换为 long 型。开发人员在使用该方法时需要注意返回值可能超出 long 类型的范围,导致抛出 ArithmeticException 异常。