📜  Java 8 | BigInteger longValueExact() 方法和示例(1)

📅  最后修改于: 2023-12-03 14:42:12.516000             🧑  作者: Mango

Java 8 | BigInteger longValueExact() 方法和示例

简介

在 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 异常。