Десятичный разделитель в 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 -> ... также, как и в примере выше
Но учтите, что теперь вы обязаны отделять дробные разряды точкой (либо менять локаль обратно)