0

当我执行以下代码时出现以下异常

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)
4

7 回答 7

7

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

于 2013-01-10T11:19:53.490 回答
3

这个数字对于整数来说太大了。整数是 32 位值,所以最大值是 2,147,483,647。尝试使用 long 代替。

于 2013-01-10T11:20:24.380 回答
1

尝试

Long.parseLong(1357679682162);
于 2013-01-10T11:22:31.090 回答
0

Java 整数最大值为 2147483647。

你正在尝试解析 1357679682162。

于 2013-01-10T11:21:20.563 回答
0

这个数字是不是太大而无法放入 int 中?java中int的范围是-2,147,483,648到2,147,483,647。也许您应该改用 parseLong 。

尝试

Long.parseLong(1357679682162)+1
于 2013-01-10T11:22:02.430 回答
0

号码太长了。

整数应该小于 2 ^31 = 2147483646

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

于 2013-01-10T11:22:18.093 回答
0

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

System.out.println(Integer.MAX_VALUE);
System.out.println(Long.MAX_VALUE);
于 2013-01-10T11:30:06.907 回答