JAVA双到字符串格式

时间:2017-05-14 12:01:35

标签: java string double string-conversion

在我没有

之前,我突然得到了一个错误

示例:

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"

我很确定我是因为"," (逗号)。有趣的是,两天前一切正常,我没有改变任何东西。

知道发生了什么或需要改变什么吗?

1 个答案:

答案 0 :(得分:4)

Double#parseDoubleDouble#toString输出的格式解析数字。

String#format,当要求格式化带小数点的数字时,会在当前区域设置中输出,但Double#toString则不会。

如果你想解析String#format的输出,我相信Scanner可以做到这一点。但就个人而言,我会避免使用您希望解析的数字进行本地化,并使用Double#toString进行格式化,或者在格式化时明确传递Locale.ROOT