java,通过scanner方法输入双精度值,带小数返回错误的数字
作为java新手,我写下以下代码: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();
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中似乎不可用。对不起,我真的不知道,在这种情况下,它将以“很多逗号”结束。有效的双精度字符只有一个逗号。请稍候。我来试试,谢谢你告诉我。我要把它换成新的。