InputMismatchException using Scanner#nextDouble with valid values

153
22 октября 2021, 18:30

Я новичок в джаве и вот мой код:

import java.util.Scanner;

public class lab {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Введите a и b");
int a = in.nextInt();
double b = in.nextDouble();
double s;
s = ((Math.pow((b-a),3)-Math.pow(a,3))/(Math.pow(b,3)-3*a*b*b-3*a*a*b));
System.out.println("Ответы " + s);
}
}

при вводе значений 0.001, 0.02 и так далее я получаю :

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextDouble(Unknown Source)
    at lab.main(lab.java:10)

как мне это исправить ?

Answer 1

Эти две строки:

int a = in.nextInt();
double b = in.nextDouble();

подразумевают, что вы будете вводить сначала целое число, а затем число с плавающей точкой.

Если вам нужно ввести 0.001 и 0.02, то int a = in.nextInt(); нужно заменить на double a = in.nextDouble();

Но даже если вы сделаете эту замену, то при вводе 0.001 у вас все равно будет генерироваться исключение. При вводе разделитель дробной части должен соответствовать настройкам языковых стандартов на вашем компьютере. Нужно вводить не 0.001, а 0,001

READ ALSO
Данные поместить в коллекцию?

Данные поместить в коллекцию?

Подскажите как сделать перечисление элементов и найти указанный номер ? Делаю с помощью selenide

175
Ошибка при компиляции в gradlew

Ошибка при компиляции в gradlew

Всем приветЯ делаю свой Packet Hack для чита в Minecraft

269
Вывести одинаковые элементы в двух массивах без повторов

Вывести одинаковые элементы в двух массивах без повторов

Задача вывести одинаковые элементы в двух массивах, без сортировки данных массивов, без повторений чисел и использования строк, массивов...

227
Убрать из предложения гласные

Убрать из предложения гласные

Кто может написать код который убирает из предложения гласные к примеру у нас есть предложение hi my name is Nick а нужно получить h m nm s Nck

153