将“9632580147”转换为int时出现Java解析错误

时间:2013-11-05 18:40:38

标签: java android string int type-conversion

在我的java代码中,我有一个字符串9632580147,当我将它转换为int时,使用以下代码:

            try{  
                sNumberInt = Integer.parseInt(sNumber);  
            } catch(NumberFormatException nfe) {  
                Log.d("NUMBER", nfe.getMessage());
                return;  
            } 

进入catch块说Invalid int: "9632580147" ... 有谁知道如何解决这个问题?

由于

5 个答案:

答案 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);