Десятичный разделитель в IntellJ IDEA

Подскажите, пожалуйста, где в настройках IntellJ IDEA выставляется десятичный разделитель?

У меня это по умолчанию "," Т. е. если я использую методы класса Scanner, то при вводе вещественных чисел обязан отделять дробную часть от целой запятой. Иначе - ошибка. В то время как вывод результатов вычислений прописывается с точкой.

Я пробовал менять разделитель в настройках Windows, с последующим перезапуском IntellJ IDEA, но на вход всё так же требовали запятую, а на выходе была точка в вещественных числах. Могу предположить, что на этапе установки IDEA этот пункт однажды фиксируется (в соответствии с текущими настройками локализации WIndows), и всё. Но это уж слишком радикально для такого серьёзного софта. :)

Загуглить, как ни пытался, не смог. :( Так что, уважаемые, выручайте!

Даю link на похожий вопрос, но там нет КОНКРЕТНОГО ответа, однако может вас натолкнёт на мысль.


Ответы (1 шт):

Автор решения: Стас

По умолчанию сканнер использует системную локаль. Так как у вас система на русском языке - используется ru_RU. В ней дробный разряд числа отделяется запятой, значит нужно сменить локаль.

Для этого есть несколько спсобов:

  • Изменение локали сканнера:

Вы можете установить определенному объекту scanner нужную локаль (даже отличную от локали остальной программы)

Пример:

Scanner scanner = new Scanner(System.in);
scanner.useLocale(Locale.US);

  • Изменение локали всей программы:

Вы можете задать использование нужной локали с нужного места в программе. Для этого используется Locale.setDefault(Locale locale). Обратите внимание, что изменения локали отражается только на объектах, созданных после вызова Locale.setDefault().

То есть в этом коде:

Locale.setDefault(Locale.US);
Scanner scanner = new Scanner(System.in);

сканнер будет использовать локаль en_US, а в этом:

Scanner scanner = new Scanner(System.in);
Locale.setDefault(Locale.US);
Scanner newScanner = new Scanner("Some text");

объект scanner все еще использует ru_RU, а newScanner уже en_US


  • Установка локали всей программы с помощью флагов JVM:

Для установки локали en_US вы можете использовать флаги:

-Duser.language=en -Duser.region=US

Что бы их установить в IntellJ IDEA:

  • Run -> Edit Configurations -> VM options -> устанавливаете там эти флаги.

Либо,

  • Выберите текущую конфигурацию (рядом с кнопкой Build) -> Edit Configurations -> ... также, как и в примере выше

Но учтите, что теперь вы обязаны отделять дробные разряды точкой (либо менять локаль обратно)

→ Ссылка