JAVA double 转字符串格式

标签 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"

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

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

最佳答案

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

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

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

关于JAVA double 转字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43963633/

相关文章:

java - 如何始终将 double 值的精度设置为 ##.## 形式?

java - 如何修复损坏的类文件错误?

Python - 比较两个字符串的最佳方法,记录比较特定项目序列位置的统计数据?

java - 如何打印双数组?

ruby - 按字符在 Ruby 字符串中的位置匹配字符

c - 求和两个字符串并在 C 中获取一个 int 值

java - long 和 double 每次都工作的时候,为什么 Java 中的数字类型那么多?

java - Employee 和 EmployeeDemo,如何获得两个独立员工的以下输出?

java - 验证不同的验证组 JSF 2.0

java - 在最后一个构造函数结束后调用方法