0

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

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

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

谢谢

4

5 回答 5

5

当您键入

int sNumber = 9632580147;

进入你的代码,编译器会告诉你:

int 类型的文字 9632580147 超出范围

原因是您的数字太大而无法放入 int,请改用 long。

于 2013-11-05T18:44:57.950 回答
5

intis的最大值2147483647,您正试图通过9632580147哪个更大。试试吧Long.parseLong(sNumber)

于 2013-11-05T18:43:22.123 回答
2

Integer最大值是 2147483647。如果要拆分该数字,则需要将其解析为Long.

于 2013-11-05T18:43:54.417 回答
2

Java中整数的最大值是2147483647当你的输入9632580147更大时。相反,使用长数据类型:

long sNumberLong = Long.parseLong(sNumber);
于 2013-11-05T18:44:14.127 回答
2

看来您传递的值大于 32 位:9632580147 = 1000111110001001011000001000110011(34 位)

于 2013-11-05T18:43:32.610 回答