Java 为什么试图解析此值会导致NumberFormatException?
代码:Java 为什么试图解析此值会导致NumberFormatException?,java,exception,Java,Exception,代码: 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" 输
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"
输出:
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"
我完全不知道这是为什么。您试图存储的值太大,无法放入整数中。为231-1,约20亿。这个数字比这个数字高出几个数量级
尝试使用和来代替。Java整数的最大值为2^31-1=2147483647
您应该使用Long.valueof()1255763710960大于2147483647,因此该值不适合
int
您需要使用
long
和(或者更好地避免不必要的自动取消装箱)来解析该值。您的字符串表示太大(>Integer.MAX_值),无法解析为int。请改为尝试long。除了更改myTempVarAh的类型声明之外,这现在更有意义了。谢谢你,约翰!:)