JAVA双精度转字符串格式

问题描述 投票:0回答:2

突然我收到一个之前没有的错误

示例:

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"

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

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

java string double string-conversion
2个回答
4
投票

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

String#format
,当要求使用小数点格式化数字时,将在当前区域设置中输出此内容,但
Double#toString
不会。

如果你想解析

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


0
投票

字符串无法转换为双精度 return String.format("%.5f",area);

我在运行程序时发现此错误。 这意味着我的程序需要双精度数据类型的输出,但上面的错误返回字符串数据类型,所以现在我们需要将字符串转换为双精度。为此,我们使用以下方法 Double.parseDouble(String.format("%.5f",area)); Double.valueOf(String.format("%.5f",area));

© www.soinside.com 2019 - 2024. All rights reserved.