标题:Scanner输入数据类型的问题
取消只看楼主
ankewlin
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-1-19
结帖率:0
已结贴  问题点数:10 回复次数:4 
Scanner输入数据类型的问题
package TaskOfJavabooksCap2;
import java.util.Scanner;

public class areaAndVolumeOfaCylinder {
   
    public static void main(String[] args) {
        
        // create a scanner object
        Scanner input = new Scanner(System.in);
        
        //Prompt user to enter 2 numbers of a cylinder
        System.out.print("Enter the radius and length of a cyllinder ");
        
        double num1 = input.nextDouble();
        double num2 = input.nextDouble();
        
        double area = num1*num1*3.14;
        System.out.println("The area is "+ area);
        System.out.println("The area is "+ area*num2 );
        
    }

}
请问各位大佬们,我这个scanner输入为什么只能针对整数,对于小数就会出现 InputMismatchException
搜索更多相关主题的帖子: the input System Scanner 输入 
2021-03-11 17:55
ankewlin
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-1-19
得分:0 
各位大佬帮我看看呗。抱错是从 double num1 = input.nextDouble();开始报错的,搞了几天了也不知道为啥错的。。
2021-03-20 18:15
ankewlin
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-1-19
得分:0 
"C:\Program Files\Java\jdk-15.0.2\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2\lib\idea_rt.jar=58290:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Administrator\IdeaProjects\TaskOfJavaBooks\out\production\hellojava TaksOfJavabook.AreaAndVolumenOfaCylinder
Enter the radius and length of a cyllinder 5.5 12.0
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 TaksOfJavabook.AreaAndVolumenOfaCylinder.main(AreaAndVolumenOfaCylinder.java:21)

Process finished with exit code 1

就是这个错误,我一个大佬朋友说我这个可能是IDEA没有配置好的问题。。。
2021-03-26 23:03
ankewlin
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-1-19
得分:0 
破案了! 如果确定数据类型没有错误的话可以把ScannerSyntax:
                     Scanner input = new Scanner(System.in);
增添为以下语句:
            Scanner input = new Scanner(System.in).useLocale(Locale.US);
这样应该就不会报错了,这还是俺在Github一个大佬上面看到的解决方法,希望对大家有用。
2021-04-13 13:17
ankewlin
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-1-19
得分:0 
回复 8楼 JiaJinz21
感觉和电脑某种未知的配置有关,我同学电脑也是没问题的我的就不行。
2021-07-17 16:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505088-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017422 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved