突然我得到一个错误,以前我没有
范例:
Double double1 = 0.12;
String string1 = String.format("%.2f", double1)
System.out.println(string1);
字符串
输出量:
0,12
型
然后我做这个
double double2 = Double.parseDouble(string1);
型
误差
java.lang.NumberFormatException: For input string: "0,12"
型
我很确定我来是因为“,”(逗号)。有趣的是,两天前一切都很好,我没有改变任何东西。
你知道发生了什么,或者我需要改变什么吗?
2条答案
按热度按时间kmb7vmvb1#
Double#parseDouble
解析Double#toString
输出格式的数字。当
String#format
被要求用小数点格式化一个数字时,它会在当前的语言环境中输出,但Double#toString
不会。如果你想解析
String#format
的输出,我相信Scanner
可以做到这一点。不过,就我个人而言,我会避免本地化你期望解析的数字,要么使用Double#toString
来格式化,要么在格式化时显式传递Locale.ROOT
。mcvgt66p2#
字符串不能转换为双精度型
return String.format(“%.5f”,area);
我在运行程序时发现了这个错误。这意味着我的程序需要双精度数据类型的输出,但上面的错误返回字符串数据类型,所以现在我们需要将字符串转换为双精度。为此,我们使用以下方法
字符串