Доброго времени суток. Решаю задачу, нужно ввести с клавиатуры 2 числа, одно типа int
, второе с плавающей точкой, т.е. double
или float
.
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 2; i++) {
int a = scanner.nextInt();
double b = scanner.nextDouble();
Привел кусок кода который соответственно проблемный, исключение выдает прямо на строке где вводится double
. Я знаю, что это исключение лезет когда несоответствие типов, но у меня все соответствует! Пример исходных данных:
50 1.88
14 1.42
55 2.81
Scanner scanner = new Scanner(System.in);
int i = 0;
double d = 0;
while (true) {
try {
i = Integer.valueOf(scanner.nextLine().trim());
d = Double.valueOf(scanner.nextLine().trim().replace(",", "."));
break;
} catch (NumberFormatException e) {
System.out.println("Ошибка ввода");
}
}
System.out.println(i + " * " + d);
Сделайте так. Это пользовательский ввод, посему прилететь может что угодно, в т.ч. совсем не цифры. Поэтому берите строку, обрезайте пробелы, меняйте запятую на точку в случае с даблом и пытайтесь ее затолкать в инт или дабл. Этот код не упадет, а цикл в совокупность с блоком, перехватывающим исключения, заставит пользователя вводить значения до тех пор, пока не будут введены именно числа.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
RxJava начал изучать недавноНо в принципе понял как все работает
ЗдравствуйтеМеня интересует как можно решить проблему с отображением знаков вопроса вместо кириллических символов в JSON полученном Ajax-запросом