从Math.pow的结果构造BigInteger时出现NumberFormatException

时间:2018-09-28 20:13:30

标签: java biginteger

我正在尝试使用一些较大的整数值,但是在初始化BigInteger变量时遇到一些问题。我一直在做:

        BigInteger x = new BigInteger("" + (Math.pow(2, n)));

其中n是100的某个数字,但这会引发NumberFormatException。我不认为我可以使用BigInteger,Valueof(),因为这花了我不认为足够大的时间。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:7)

一种或另一种Math.pow会返回类型double的值,该值将使用小数分隔符进行格式化。 BigInteger不接受十进制值。

  

抛出:
    NumberFormatException-val不是BigInteger的有效表示。

只需使用BigInteger提供的pow方法

BigInteger x = BigInteger.TWO.pow(n);