2013-01-10 100 views
0

我收到以下異常,當我得到執行以下代碼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) 
+0

什麼是實際的代碼? '1357679682162'不是'String' – amit

回答

7

你逝去的數字是從-2,147,483,648到2,147,483,647

整數的範圍之外
3

該數字對於整數來說太大。整數是32位的值,所以最大值是2,147,483,647。嘗試使用long來代替。

0

的Java整數最大值爲2147483647

而你試圖解析1357679682162.

0

是不是太大,不適合在一個int數? java中int的範圍是-2,147,483,648到2,147,483,647。也許你應該使用parseLong來代替。

嘗試

Long.parseLong(1357679682162)+1 
1

嘗試

Long.parseLong(1357679682162); 
0

與檢查自己下面的代碼,並使用可行類型的解決方案。

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