如何在Java中连接大整数?
我正试图编写一个简单的程序,随机生成3个整数,然后将它们放入数组中,然后将它们连接成单个整数序列,但它会抛出一个错误 代码如下:如何在Java中连接大整数?,java,numberformatexception,Java,Numberformatexception,我正试图编写一个简单的程序,随机生成3个整数,然后将它们放入数组中,然后将它们连接成单个整数序列,但它会抛出一个错误 代码如下: int [] kol=new int[3]; for(int j=0;j<3;j++) { kol[j]=(int)Math.round(Math.random() * 89999) + 10000; System.out.print(kol[j] +"\n" ); } String
int [] kol=new int[3];
for(int j=0;j<3;j++) {
kol[j]=(int)Math.round(Math.random() * 89999) + 10000;
System.out.print(kol[j] +"\n" );
}
String ma=kol[0]+","+kol[1]+","+kol[2]+";";
System.out.println(ma);
但同样的错误是:
Exception in thread "main" java.lang.NumberFormatException: For input
at java.lang.NumberFormatException.forInputString(Unknown Source)
string: "715534907077099"
整数范围不足以包含较大的值
int MAX_VALUE = 2147483647
int MIN_VALUE = -2147483648
因此,使用相同的整数范围不足以获得较大的值
int MAX_VALUE = 2147483647
int MIN_VALUE = -2147483648
因此,对于java中相同的,
int
类型是一个32位有符号值,其中最大值为2147483647(2^31-1)。
显然,您的值“715534907077099”比Integer.MAX\u值大得多。如果仍然小于Long.MAX_值,int n=Long.parseLong(strValue)
将起作用
但如果您不想设置上限,请改用biginger
:
BigInteger bi = new BigInteger(Integer.toString(kol[0]) + Integer.toString(kol[1]) +
Integer.toString (kol[2]));
System.out.println(bi);
在java中,
int
类型是一个32位有符号值,其中最大值为2147483647(2^31-1)。
显然,您的值“715534907077099”比Integer.MAX\u值大得多。如果仍然小于Long.MAX_值,int n=Long.parseLong(strValue)
将起作用
但如果您不想设置上限,请改用biginger
:
BigInteger bi = new BigInteger(Integer.toString(kol[0]) + Integer.toString(kol[1]) +
Integer.toString (kol[2]));
System.out.println(bi);
使用
biginger
?如果您试图使用int无法接受的大值,请尝试使用@MoritzPetersen建议的biginger
。我尝试了int b=Integer.parseInt(Integer.toString(kol[0])+Integer.toString(kol[1])+Integer.toString(kol[2]);tesa=tesa.add(biginger.valueOf(b));系统输出打印LN(tesa);使用biginger
?如果您试图强制转换一个int无法接受的大值,请尝试使用@MoritzPetersen建议的biginger
。我尝试了int b=Integer.parseInt(Integer.toString(kol[0])+Integer.toString(kol[1])+Integer.toString(kol[2]);tesa=tesa.add(biginger.valueOf(b));系统输出打印LN(tesa);我试过上面的代码,还是同一个例外,难道连BigInteger都有限制吗?似乎我在上面的代码中犯了一些拼写错误。我已经改正了。再试一次@user2557930i我自己更正了拼写,这不是问题所在,您可以自己尝试编译,它会给出相同的异常您确定您得到了相同的异常。似乎我必须上传一张图片来证明我的代码。哈。我试过上面的代码,还是一样的例外,难道连BigInteger都有限制吗?似乎我在上面的代码中犯了一些拼写错误。我已经改正了。再试一次@user2557930i我自己更正了拼写,这不是问题所在,您可以自己尝试编译,它会给出相同的异常您确定您得到了相同的异常。似乎我必须上传一张图片来证明我的代码。哈