我收到数字格式异常,不确定我做错了什么。
public static void main(String[] args) {
int v = 1476423;
double d = v;
System.out.println("Double "+v);
String s = String.valueOf(d);
System.out.println("String "+s);
v = Integer.parseInt(s);
System.out.println("Integer "+v);
}
当我尝试打印v时,它会给出数字格式异常。有人可以在这帮忙吗?
错误:
Double 1476423
String 1476423.0
Exception in thread "main" java.lang.NumberFormatException: For input string: "1476423.0"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at testCases.Random.main(Random.java:12)
答案 0 :(得分:2)
这显然不是整数值, 小数部分,即使它是零:
"1476423.0"
要么这样做:
int v = Integer.parseInt("1476423");
或者这个:
double d = Double.parseDouble("1476423.0");
答案 1 :(得分:0)
您可以通过删除此行
来解决问题v = Integer.parseInt(s);
但问题是double d = v;
使v
成为一个浮点数,你转换为一个字符串,然后尝试转换回一个int,这不是很清楚为什么你这样做,因为您没有以任何方式更改v
的值。