标题:Scanner输入数据类型的问题
只看楼主
ankewlin
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-1-19
结帖率:0
已结贴  问题点数:10 回复次数:9 
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
linkeryy
Rank: 1
来 自:广东省深圳市
等 级:新手上路
帖 子:2
专家分:0
注 册:2021-3-12
得分:0 
你确定报错吗?我把你的代码完整粘贴下来运行,输入小数可没有报错哦。

流言止于智者,偏见来自无知。
2021-03-23 10:46
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
sssooosss
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:3
帖 子:664
专家分:1115
注 册:2019-8-27
得分:0 
共同学习
2021-03-29 08:35
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
one737
Rank: 2
等 级:论坛游民
威 望:1
帖 子:19
专家分:18
注 册:2021-7-2
得分:0 
是不是打得中文句号。。。
2021-07-04 19:55
JiaJinz21
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2021-7-15
得分:0 
我试了一下,没问题啊!
2021-07-15 13:54
ankewlin
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-1-19
得分:0 
回复 8楼 JiaJinz21
感觉和电脑某种未知的配置有关,我同学电脑也是没问题的我的就不行。
2021-07-17 16:29
GSH687
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-9-28
得分:0 
没问题 如果改为double型的话
2021-11-14 19:06



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




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

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