第一次尝试使用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);
也提到了其他一些问题,没有做太多帮助,我错过了什么?什么是最好的解决方案?谢谢,
答案 0 :(得分:5)
asd[0] = 123456458979851322316546445665;
因两个原因无效:
您不能将原始值分配给类型为引用类型的变量(除非该引用类型是该原始类型的包装类,如Integer
是{{1}的包装器}})。
int
对于123456458979851322316546445665
字面值来说太大了(即使你添加int
后缀,它对于L
字面值仍然太大了。这也解释了为什么long
不起作用。
相反,请使用带有asd[0] = new BigInteger(123456458979851322316546445665);
的<{1}}构造函数:
BigInteger
输出:
String
答案 1 :(得分:0)
通过
创建BigIntegerasd[0] = new BigInteger("123456458979851322316546445665");
BigInteger不接受从整数到BigInteger的显式转换,只能通过构造函数接受。