DecimalFormat возвращает символ ? вместо символа - , когда значение, данное ему, является отрицательным.
Я использую ATOM со SCRIPTпакет и JDK12.0.2.
Я могу заменить символ " - " практически любым другим символом, и десятичный формат даст правильный вывод.Это то, что делает эту проблему загадочной для меня.Я пытался разобраться в региональных проблемах, но не смог решить проблему.
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