Этот вопрос кажется безумно простым, но я смущен, сказав, что мне не удалось выяснить, как это работает.
Я хочу, чтобы мое приложение Java SE получало свой формат номера от того, что настроено в ОС. Как и любое другое приложение на этой ОС.
Моя цель - в первую очередь Windows. Рассмотрим этот пример в Windows:
Я использую этот маленький пример, чтобы проверить результат:
public class MyMain {
public static void main(String[] args) {
DecimalFormat decFormat = new DecimalFormat();
DecimalFormatSymbols decSymbols = decFormat.getDecimalFormatSymbols();
System.out.println("Decimal separator is : " + decSymbols.getDecimalSeparator());
System.out.println("Thousands separator is : " + decSymbols.getGroupingSeparator());
}
}
С примером скриншота выше моего маленького примера Java prints:
Decimal separator is : ,
Thousands separator is : .
Я бы ожидал, что он скажет, что десятичный разделитель является точкой, а тысячи разделитель - это запятая, потому что это то, что я сказал Windows, и что все остальные приложения Windows забирают.
У меня создается впечатление, что в Windows эти настройки вступают в силу для новых процессов. Я попытался перезапустить мою среду IDE. Не помогло.
Что я делаю неправильно?