我编写了以下代码来计算两个浮点数到两个小数位的区别:
double p = (Math.round((Double.parseDouble(a) - Double.parseDouble(a))*100))/100;
a
和b
是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)
其他信息:这使用来自网络的数据,似乎之前有效,但现在它似乎有各种各样的错误。我该如何解决这个问题?问题是什么?
答案 0 :(得分:5)
问题是您的String
变量a
和b
格式不正确 - “N / A”不合适double
。
请发布你如何获得它们。
答案 1 :(得分:0)
错误的根源是java.lang.NumberFormatException: For input string: "N/A"
这意味着a
或b
的值为 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);
那么你可能会犯错字错误。因为它打印出来对我很好。