线程“main”java.util.InputMismatchException 中出现异常,当我键入十进制数 [duplicate] 时

Exception in thread "main" java.util.InputMismatchException when I type a decimal number [duplicate]

提问人:KATCHAW 提问时间:10/18/2022 更新时间:10/18/2022 访问量:38

问:

我不明白这里有什么问题:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner cl = new Scanner(System.in);
        double a = cl.nextDouble();
        System.out.print(a);

    }
}

每当我键入 x.x 时,我都会收到此错误:

Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
at Main.main(Main.java:5)
Java 语法错误 类型错误

评论

0赞 DevilsHnd - 退した 10/18/2022
您不能向 Scanner#nextDouble() 方法提供字母字符 (like ),但 和 或 course 除外。仅限数字。您还需要确保没有空格。x+-.

答:

0赞 rzwitserloot 10/18/2022 #1

扫描程序默认为系统区域设置。您的系统区域设置设置为荷兰语,或其他使用逗号作为小数分隔符的区域设置。您有 2 个选择:

  1. 改为键入。5,5
  2. 制作后立即根据自己的喜好进行配置。THat 涉及调用,可能还涉及(这意味着:用户应该在每次输入后按回车键。与几乎无用的“任意数量的空格”默认分隔符相比)。new Scannercl.useLocale(Locale.ENGLISH);cl.useDelimiter("\\R")

评论

0赞 KATCHAW 10/18/2022
非常感谢,您也知道我可以在哪里更改系统区域设置吗?
0赞 rzwitserloot 10/18/2022
在您的 Windows、Linux 或 mac 系统设置中。