Компилятор выкидывает ошибку когда я ввожу число типа double. Не могу разобраться что делать
Решаю задачу с JavaRush, встретился с такой проблемой - компилятор выкидывает ошибку:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextDouble(Scanner.java:2413)
at com.company.Main.main(Main.java:11)
Я так понимаю что-то с моим IntelliJ IDEA, потому-что код программы скопировал с сайта, но ошибку всё равно выкидывает.
При том если я ввожу целое число, например 36 то всё отлично, но если я введу допустим 36.0 то компилятор сразу кидает ошибку.
Кто знает что это может быть?
Полный код программы:
package com.company;
import java.util.Scanner;
public class Main {
private static boolean isHigh;
private static boolean isLow;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double bodyTemperature = scanner.nextDouble();
isHigh = bodyTemperature > 37;
isLow = bodyTemperature < 36;
if (isHigh) {
System.out.println("температура тела высокая");
} else if (isLow) {
System.out.println("температура тела низкая");
} else {
System.out.println("температура тела нормальная");
}
}
}
Ответы (1 шт):
Автор решения: Alexandr
→ Ссылка
Скорее всего у Вас используется локаль, в которой десятичный разделитель не точка. Вы можете при инициализации java.util.Scanner указать явно локаль:
Scanner scanner = new Scanner(System.in).useLocale(Locale.US);