为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕神8447489 2023-08-09 15:31:57
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.2Csimtest ?20,2C  <=== expected  -20,2Csimtest 21,4Csimtest *20,2C
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

尝试设置java.util.Locale

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


查看完整回答
反对 回复 2023-08-09
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信