2010-02-12 35 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。尝试一长一段。