李西青
Просветленный
(42581)
7 лет назад
Scanner использует информацию о локали для получения разделителя десятичной дроби. Локаль у тебя русская, значит разделитель запятая, а не точка.
vlqb200Профи (644)
7 лет назад
Спасибо, пока ты можешь ответить, маленький вопрос, как правильно писать сравнение переменной a и нуля?
if (a.compareTo(0)) {
}
не работает.
package com.company;
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanA = new Scanner(System.in);
BigDecimal a = scanA.nextBigDecimal();
Scanner scanB = new Scanner(System.in);
BigDecimal b = scanA.nextBigDecimal();
Scanner scanC = new Scanner(System.in);
BigDecimal c = scanA.nextBigDecimal();
BigDecimal dva = new BigDecimal(2);
if (a.equals(0)) {
a = (c.subtract(b).subtract(b));
}
if (b.equals(0)) {
b = (c.subtract(a).subtract(a));
}
if (c.equals(0)) {
c = (a.add(b)).multiply(dva) ;
}
}
}
Ввёл: 0.1
Ошибка:
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:860)
at java.base/java.util.Scanner.next(Scanner.java:1497)
at java.base/java.util.Scanner.nextBigDecimal(Scanner.java:2645)
at com.company.Main.main(Main.java:10)
Process finished with exit code 1
Что делать, в чём ошибка?