Java 点正在返回我不匹配的异常,即使是我';我使用Locale.US
在我尝试在next.Double()上用点输入数字后,我的程序返回不匹配异常。我正在使用Locale.USJava 点正在返回我不匹配的异常,即使是我';我使用Locale.US,java,mismatch,Java,Mismatch,在我尝试在next.Double()上用点输入数字后,我的程序返回不匹配异常。我正在使用Locale.US Scanner sc = new Scanner(System.in); Locale.setDefault(Locale.US); double nota1, nota2, resultado; nota1 = sc.nextDouble(); nota2 = sc.nextDouble(); resultado = nota1 + nota2; if (resultado &l
Scanner sc = new Scanner(System.in);
Locale.setDefault(Locale.US);
double nota1, nota2, resultado;
nota1 = sc.nextDouble();
nota2 = sc.nextDouble();
resultado = nota1 + nota2;
if (resultado < 60.0) {
System.out.println("NOTA FINAL = " + resultado);
System.out.println("REPROVADO");
}
else {
System.out.println("NOTA FINAL = " + resultado);
}
sc.close();
Scanner sc=新扫描仪(System.in);
setDefault(Locale.US);
双nota1,nota2,resultado;
nota1=sc.nextDouble();
nota2=sc.nextDouble();
resultado=nota1+nota2;
如果(结果小于60.0){
System.out.println(“NOTA FINAL=“+resultado”);
System.out.println(“REPROVADO”);
}
否则{
System.out.println(“NOTA FINAL=“+resultado”);
}
sc.close();
尝试在第19行输入“45.5”后,我收到异常错误消息(nota1=sc.nextDouble();
)
错误消息:
线程“main”java.util.InputMismatchException中出现异常位于java.util.Scanner.throwFor(Scanner.java:864)
在java.util.Scanner.next(Scanner.java:1485)
在java.util.Scanner.nextDouble(Scanner.java:2413)
位于application.Program.main(Program.java:19)
您只需将第一行的顺序更改为
Locale.setDefault(Locale.US);
Scanner sc = new Scanner(System.in);
在创建扫描仪之前,首先设置系统默认区域设置。
创建新扫描仪时,它将获取并使用在创建时设置的默认区域设置,因此必须在扫描仪初始化之前设置默认区域设置
或者,您也可以使用:
Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
在不修改默认区域设置的情况下,直接在扫描仪上设置要使用的区域设置。只需移动行
locale.setDefault(locale.US)代码>在您创建扫描仪之前,它应该可以工作。@luk2302,上帝蜘蛛的建议可以工作。我所要做的就是将区域设置行移到扫描行之前。许多的thanks@OHGODSPIDERS,非常感谢,它成功了!!我如何结束/完成这个问题?@ohgodspider应该将解决方案作为答案发布;那么你应该接受这个回答。