[英]Java input scanner not working with double
我有以下 Java 代码。 当我在输入中输入 integer 值时,它可以正常工作(例如 -4),但是当我输入 4.0 时,它会中断。 错误如下。 有人可以帮助理解我做错了什么吗? 先感谢您。
import java.util.Scanner;
public class Main {
public static void main(String[] args ) {
int studentAge = 25;
double studentGPA = 3.45;
boolean hasPerfectAttendance = true;
String studentName = "Ivan Grey";
char studentFirstInitial = studentName.charAt(0);
char studentLastInitial = 'G';
System.out.println(studentAge);
System.out.println(studentGPA);
System.out.println(studentFirstInitial);
System.out.println(studentLastInitial);
System.out.println(hasPerfectAttendance);
System.out.println(studentName);
System.out.println(studentFirstInitial + " " + studentLastInitial +
" has a GPA of " + studentGPA);
System.out.println("What do you want to update it to?");
Scanner input = new Scanner(System.in);
studentGPA = input.nextDouble();
input.close();
System.out.println(studentFirstInitial + " " + studentLastInitial +
" now has a GPA of " + studentGPA);
}
}
Error is 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 ) 在 java.base/java.util.Scanner.nextDouble(Scanner.java:2564) 在 Main.main(Main.Z93F725A07423FE1C889F4248B3)
Scanner 使用系统区域设置的数字格式,因此如果您在语言设置为法语的计算机上运行此程序,它希望您编写4,0
。
要使 Scanner 区域设置独立,请添加调用useLocale
:
Scanner input = new Scanner(System.in);
input.useLocale(Locale.ROOT);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.