1

我编写了以下代码来计算两个浮点数到小数点后两位之间的差异:

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

a并且b是字符串数组中的值,它们是带小数位的数字,但显然是字符串格式。我试图将字符串数字转换为双精度数并使用它们进行计算,但它似乎不起作用并引发此错误:

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)

附加信息:这使用来自网络的数据,以前似乎可以工作,但现在似乎有某种错误。我该如何解决这个问题,有什么问题?

4

3 回答 3

5

问题是您的变量String格式不正确-“N/A”不是正确的.abdouble

请发布您如何获得它们。

于 2012-02-01T14:27:38.933 回答
0

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

这意味着ab具有N/A的值。

于 2012-02-01T14:29:04.320 回答
0

您的代码中没有 b 。如果您尝试执行以下操作:


String[] a = {"123","23"} ;
double p = (Math.round((Double.parseDouble(a[0]) - Double.parseDouble(a[1]))*100))/100;
System.out.println(p);

那么你可能有一个拼写错误。因为它打印出来对我来说很好。

于 2012-02-01T14:35:58.327 回答