BigInteger,整数太大了

时间:2015-12-19 11:24:59

标签: java

第一次尝试使用BigInteger,这是我的代码:

    public class Factx
{
    public static void main(String[] args)
    {
        BigInteger[] asd = new BigInteger[10];
        asd[0] = 123456458979851322316546445665;
        System.out.println(asd[0]);
    }
}

对此进行编译,会出现错误Integer number too large

我也尝试过改变,

        asd[0] = new BigInteger(123456458979851322316546445665);

也提到了其他一些问题,没有做太多帮助,我错过了什么?什么是最好的解决方案?谢谢,

2 个答案:

答案 0 :(得分:5)

asd[0] = 123456458979851322316546445665;因两个原因无效:

  1. 您不能将原始值分配给类型为引用类型的变量(除非该引用类型是该原始类型的包装类,如Integer是{{1}的包装器}})。

  2. int对于123456458979851322316546445665字面值来说太大了(即使你添加int后缀,它对于L字面值仍然太大了。这也解释了为什么long不起作用。

  3. 相反,请使用带有asd[0] = new BigInteger(123456458979851322316546445665);的<{1}}构造函数:

    BigInteger

    输出:

    String

答案 1 :(得分:0)

通过

创建BigInteger
asd[0] =  new BigInteger("123456458979851322316546445665");

BigInteger不接受从整数到BigInteger的显式转换,只能通过构造函数接受。