获取数字格式异常

时间:2016-06-08 02:31:59

标签: java

我收到数字格式异常,不确定我做错了什么。

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)

2 个答案:

答案 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的值。