在我的java代码中,我有一个字符串9632580147
,当我将它转换为int时,使用以下代码:
try{
sNumberInt = Integer.parseInt(sNumber);
} catch(NumberFormatException nfe) {
Log.d("NUMBER", nfe.getMessage());
return;
}
进入catch块说Invalid int: "9632580147"
...
有谁知道如何解决这个问题?
由于
答案 0 :(得分:5)
int
的最大值为2147483647
,您试图传递更高的9632580147
。尝试Long.parseLong(sNumber)
答案 1 :(得分:5)
键入
时int sNumber = 9632580147;
进入你的代码,编译器会告诉你:
int类型的文字9632580147超出范围
原因是你的数字太大而不适合int,而是使用long。
答案 2 :(得分:2)
看来你传递的值大于32位: 9632580147 = 1000111110001001011000001000110011(34位)
答案 3 :(得分:2)
Integer
最大值为2147483647.如果要分配该数字,则需要将其解析为Long
。
答案 4 :(得分:2)
当您的输入2147483647
更大时,Java中整数的最大值为9632580147
。而是使用长数据类型:
long sNumberLong = Long.parseLong(sNumber);