代码:
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"
我完全不知道为什么会这样。
答案 0 :(得分:9)
您尝试存储的值太大而无法容纳整数。 maximum value for an Integer 是2 31 -1,或大约20亿。这个数字超过了几个数量级。
尝试使用 Long
和 parseLong()
。
答案 1 :(得分:4)
Java Integer最大值为2 ^ 31-1 = 2147483647
您应该使用Long.valueof()
答案 2 :(得分:3)
您的字符串表示太大(> Integer.MAX_VALUE),无法解析为int。试试一下。
答案 3 :(得分:2)
1255763710960超过Integer.MAX_VALUE
,即2147483647,因此该值不适合int
。
您需要使用long
和Long.valueOf()
(或更好的Long.parseLong()
来避免不必要的自动拆箱)来解析该值。