繁体   English   中英

Java 输入扫描仪不使用双

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM