java - 对于负 Double 输入,DecimalFormat 返回 "? "而不是 "- "

标签 java

当给定的值为负数时,DecimalFormat 返回 ? 符号来代替 - 符号。

我使用带有 SCRIPT 包和 JDK12.0.2 的 ATOM。

我可以用几乎任何其他符号替换“-”符号,DecimalFormat 将给出正确的输出。这就是这个问题让我感到困惑的原因。我尝试调查区域设置问题,但未能解决问题。

double nTest = -20.20;
System.out.println("simtest " + nTest + "C");

private static DecimalFormat desFor = new DecimalFormat("#0.0;-#0.0");
System.out.println("simtest " + desFor.format(-20.20) + "C");
System.out.println("simtest " + desFor.format(21.45) + "C");

private static DecimalFormat desForAny = new DecimalFormat("#0.0;*#0.0");
System.out.println("simtest " + desForAny.format(-20.20) + "C");

Results

simtest -20.2C

simtest ?20,2C  <=== expected  -20,2C

simtest 21,4C

simtest *20,2C

最佳答案

尝试设置java.util.Locale

DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(Locale.ENGLISH);
DecimalFormat desFor = new DecimalFormat("#0.0;-#0.0", symbols);

关于java - 对于负 Double 输入,DecimalFormat 返回 "? "而不是 "- ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58000785/

相关文章:

java - Java中没有输出

java - 带有像样的 gui 工具包的跨平台编程语言?

javascript - 当项目从java1.4迁移到java1.8时,jsp中TextBox的默认值为 "null"

java - ElasticSearch 全文搜索

java - 减少 jar 文件的大小?

java - 如何查看在 docker 容器内运行的 log4j 日志?

java - 后台线程中的 Progress bar.setProgress(variable)

java - Spring 通过构造函数 Autowiring

Java错误: bad operand types for binary operator in HashMap

java - log4j:错误 "org.apache.log4j.ConsoleAppender"对象不可分配给 "org.apache.log4j.Appender"变量