对于负 Double 输入,DecimalFormat 返回“?”而不是“-”

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

结果


simtest -20.2C


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


simtest 21,4C


simtest *20,2C


慕神8447489
浏览 102回答 1
1回答

MMMHUHU

尝试设置java.util.LocaleDecimalFormatSymbols&nbsp;symbols&nbsp;=&nbsp;DecimalFormatSymbols.getInstance(Locale.ENGLISH); DecimalFormat&nbsp;desFor&nbsp;=&nbsp;new&nbsp;DecimalFormat("#0.0;-#0.0",&nbsp;symbols);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java