2010-02-12 61 views
2

代碼爲什麼試圖解析這個值會導致NumberFormatException?

String myVar = "1255763710960"; 
int myTempVar=0; 
try 
{ 
    myTempVar = Integer.valueOf(myVar); 
} 
catch (NumberFormatException nfe) 
{ 
    System.out.println(nfe.toString()); 
} 

輸出

java.lang.NumberFormatException: 
For input string: "1255763710960" 

我也絕對不知道這是爲什麼。

回答

9

您試圖存儲的值太大而不適合整數。 maximum value for an Integer是2,或約20億。這個數字超過了幾個數量級。

嘗試使用LongparseLong()代替。

+0

啊,那現在更有意義了。謝謝你,約翰! :) – Federer 2010-02-12 13:54:17

4

的Java整數maximun值是2^31-1 = 2147483647

您應該使用Long.valueof()

+0

除了更改myTempVar的類型聲明 – 2010-02-12 13:47:57

3

您的字符串表示太大(> Integer.MAX_VALUE),無法解析爲int。嘗試一長一段。