NumberFormatException抛出解析整数

时间:2013-01-10 11:18:13

标签: java numberformatexception

当我执行以下代码时,我收到以下异常

Integer.parseInt(1357679682162)+1

 INFO | jvm 1 | srvmain | 2013/01/08 22:22:09.496 | Caused by: java.lang.NumberFormatException: For input string: "1357679682162"
 INFO | jvm 1 | srvmain | 2013/01/08 22:22:09.496 | at java.lang.NumberFormatException.forInputString(Unknown Source)
 INFO | jvm 1 | srvmain | 2013/01/08 22:22:09.496 | at java.lang.Integer.parseInt(Unknown Source)
 INFO | jvm 1 | srvmain | 2013/01/08 22:22:09.496 | at java.lang.Integer.parseInt(Unknown Source)

7 个答案:

答案 0 :(得分:7)

您传递的数字超出整数范围,从-2,147,483,648到2,147,483,647

答案 1 :(得分:3)

这个数字对整数来说太大了。整数是32位值,因此最大值是2,147,483,647。请尝试使用long。

答案 2 :(得分:1)

Long.parseLong(1357679682162);

答案 3 :(得分:0)

Java Integer Max值为2147483647。

您正在尝试解析1357679682162。

答案 4 :(得分:0)

数字是不是太大而不适合int? java中int的范围是-2,147,483,648到2,147,483,647。也许你应该使用parseLong。

尝试

Long.parseLong(1357679682162)+1

答案 5 :(得分:0)

这个数字太长了。

整数应该小于2 ^ 31 = 2147483646

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html

答案 6 :(得分:0)

使用以下代码检查自己,并使用可行类型为您的解决方案。

System.out.println(Integer.MAX_VALUE);
System.out.println(Long.MAX_VALUE);