java,通过scanner方法输入双精度值,带小数返回错误的数字

java,通过scanner方法输入双精度值,带小数返回错误的数字,java,Java,作为java新手,我写下以下代码: import java.util.Scanner; public class EserciziCap2_6_2 { public static void main(String[] args) { Scanner aaa = new Scanner (System.in); System.out.println("inserire x"); Double x = aaa.nextDouble();

作为java新手,我写下以下代码:

import java.util.Scanner;

public class EserciziCap2_6_2 {

    public static void main(String[] args) {
        Scanner aaa = new Scanner (System.in);
        System.out.println("inserire x");
        Double x = aaa.nextDouble();
        System.out.println(x);
    }
}
它工作正常,没有十进制值,比如4返回4.0,2返回2.0,以此类推。 但是,如果我输入1.14,它将返回以下错误:

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 EserciziCap2_6_2.main(EserciziCap2_6_2.java:8)
怎么了?

您必须输入“,”而不是“.”。 如果要使用“.”作为逗号,请使用:

 public static void main(String[] args) {

    Scanner aaa = new Scanner (System.in);
    System.out.println("inserire x");
    String input = aaa.nextLine().replace(".", ",");
    Double x = Double.parseDouble(input);
    System.out.println(x);
}

…输入
1,14
而不是
1.14
这对我来说很好,正如预期的那样..你确定没有其他问题吗?大家好,谢谢回答。YCF_L tip有效。我不能使用replace方法,因为它在我的eclipse中似乎不可用。对不起,我真的不知道,在这种情况下,它将以“很多逗号”结束。有效的双精度字符只有一个逗号。请稍候。我来试试,谢谢你告诉我。我要把它换成新的。