将“9632580147”转换为int时出现Java分析错误
在java代码中,我有一个字符串9632580147,当我将其转换为int时,使用以下代码:将“9632580147”转换为int时出现Java分析错误,java,android,string,int,type-conversion,Java,Android,String,Int,Type Conversion,在java代码中,我有一个字符串9632580147,当我将其转换为int时,使用以下代码: try{ sNumberInt = Integer.parseInt(sNumber); } catch(NumberFormatException nfe) { Log.d("NUMBER", nfe.getMessage()); return;
try{
sNumberInt = Integer.parseInt(sNumber);
} catch(NumberFormatException nfe) {
Log.d("NUMBER", nfe.getMessage());
return;
}
它进入catch块,说Invalid int:9632580147。。。
有人知道如何解决这个问题吗
谢谢int的最大值是2147483647,您试图通过更大的9632580147。请尝试Long.parseLongNumber似乎传递的值大于32位:
9632580147=1000111110001011000001001111 34位整数最大值为2147483647。如果要将该数字分成几部分,则需要将其解析为长整数。Java中整数的最大值为2147483647,而输入9632580147则更大。相反,请使用长数据类型:
long sNumberLong = Long.parseLong(sNumber);
你打字的时候
int sNumber = 9632580147;
在代码中,编译器将告诉您:
int类型的文字9632580147超出范围
原因是您的数字太大,无法放入整数中,请使用long。删除数字周围的s。字符串本身没有引号,我只是将其放在这里。您可以发布您的字符串吗?int最大值为2147483647。字符串为9632580147。。。。