JAVA双字符串格式

y3bcpkx1  于 5个月前  发布在  Java
关注(0)|答案(2)|浏览(72)

突然我得到一个错误,以前我没有
范例:

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"


我很确定我来是因为“,”(逗号)。有趣的是,两天前一切都很好,我没有改变任何东西。
你知道发生了什么,或者我需要改变什么吗?

kmb7vmvb

kmb7vmvb1#

Double#parseDouble解析Double#toString输出格式的数字。
String#format被要求用小数点格式化一个数字时,它会在当前的语言环境中输出,但Double#toString不会。
如果你想解析String#format的输出,我相信Scanner可以做到这一点。不过,就我个人而言,我会避免本地化你期望解析的数字,要么使用Double#toString来格式化,要么在格式化时显式传递Locale.ROOT

mcvgt66p

mcvgt66p2#

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

Double.parseDouble(String.format("%.5f",area));
Double.valueOf(String.format("%.5f",area));

字符串

相关问题