试着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);
提到了其他一些问题,没有多大帮助,我错过了什么?什么是最好的解决方案?谢谢,
asd[0] = 123456458979851322316546445665;
不起作用有两个原因:
您不能将原始值分配给类型为引用类型的变量(除非该引用类型是该基本类型的包装类,就像Integer
它的包装器一样int
).
123456458979851322316546445665
对于int
文字来说太大了(即使添加L
后缀,对于long
文字来说它仍然太大).这也解释了为什么asd[0] = new BigInteger(123456458979851322316546445665);
不起作用.
相反,使用BigInteger
带有String
:的构造函数:
BigInteger[] asd = new BigInteger[10]; asd[0] = new BigInteger("123456458979851322316546445665"); System.out.println(asd[0]);
输出:
123456458979851322316546445665