繁体   English   中英

DecimalFormat 返回“? ” 而不是“ - ” 用于负双输入

[英]DecimalFormat returns “ ? ” instead of “ - ” for negative Double input

DecimalFormat 返回? 符号代替-符号,当赋予它的值是负数时。

我将 ATOM 与 SCRIPT package 和 JDK12.0.2 一起使用。

我可以用几乎任何其他符号替换“ - ”符号,DecimalFormat 将给出正确的 output。 这就是让我对这个问题感到困惑的原因。 我试图调查语言环境问题,但未能解决问题。

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");

结果

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);
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM