Java - 计算错误

时间:2012-02-01 14:25:43

标签: java double numberformatexception

我编写了以下代码来计算两个浮点数到两个小数位的区别:

double p = (Math.round((Double.parseDouble(a) - Double.parseDouble(a))*100))/100;

ab是String数组中的值,这些值是带小数位的数字,但显然是String的格式。我已经尝试将字符串数字转换为双精度数并使用它们执行计算,但它似乎没有工作并抛出此错误:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "N/A"
    at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
    at java.lang.Double.parseDouble(Unknown Source)

其他信息:这使用来自网络的数据,似乎之前有效,但现在它似乎有各种各样的错误。我该如何解决这个问题?问题是什么?

3 个答案:

答案 0 :(得分:5)

问题是您的String变量ab格式不正确 - “N / A”不合适double

请发布你如何获得它们。

答案 1 :(得分:0)

错误的根源是java.lang.NumberFormatException: For input string: "N/A"

这意味着ab的值为 N / A

答案 2 :(得分:0)

您的代码中没有b。如果你想做这样的事情:


String[] a = {"123","23"} ;
double p = (Math.round((Double.parseDouble(a[0]) - Double.parseDouble(a[1]))*100))/100;
System.out.println(p);
那么你可能会犯错字错误。因为它打印出来对我很好。