【发布时间】:2020-06-14 04:17:31
【问题描述】:
我目前是 Java 的初学者,我偶然发现了一些让我有点吃惊的东西。
使用扫描仪,我尝试创建一个允许我比较 2 个数字的程序。如:
num1 > num2
num2 < num1
num1 == num2
诸如此类。
我打算使用双精度数,因为它允许各种数字,从整数到小数。问题是每当我在控制台问我时输入一个数字时;如果数字有一个句号,它会给我一个不匹配的异常错误。我尝试通过实现一个scanner.nextLine()来克服这个问题;或 nextDouble() 之前的 (double);方法。但这没有用。有人可以帮帮我吗?如果我对问题的解释不够好,我会尝试进一步解释,这是我第一次使用这个网站。
public static void numeralComparison() {
Scanner scanner = new Scanner(System.in);
System.out.println("Input the first number. Use a comma to indicate decimal points: ");
double num1 = (double) scanner.nextDouble();
scanner.nextLine();
System.out.println("Input the second number: ");
double num2 = (double) scanner.nextDouble();
scanner.nextLine();
if(num1 < num2) {
System.out.println(num1 + " < " + num2);
} else if (num2 < num1) {
System.out.println(num2 + " < " + num1);
} else {
System.out.println(num1 + " = " + num2);
}
scanner.close();
}
如果我向控制台提供数字“30,0”,它就可以工作。它没有抛出异常。但是,例如,如果我要为它提供“30.0”,它会抛出一个 InputMismatch 异常。
JDK 规范:Corretto 11、IntelliJ IDEA
【问题讨论】:
标签: java double java.util.scanner mismatch