"main" 线程中出现异常:java.util.InputMismatchException,表示 "double" 输入错误。

3
首先,我已经阅读了很多关于这个错误的帖子,但都没有解决我的问题。
以下是我的代码:
import java.util.Scanner;

public class Programa1 {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        double strana_a, strana_b, strana_c;
        strana_a = s.nextDouble();
        //strana_b = s.nextDouble();
        //strana_c = s.nextDouble();

        System.out.println(strana_a);

        s.close();
    }

}

当我输入8.0时,它显示了这个错误,我做错了什么?

2
你的代码对我来说运行良好。请向我们展示您输入的确切内容。 - TheLostMind
请尝试使用“8,5”作为输入,而不是“8.5”?我不知道你的代码出了什么问题,所以请尝试这个并告诉我们错误是否仍然发生。 - Mikel Urkia
我认为这是与Locale有关的问题...它能用“8,5”吗?(逗号而非点) - Andrea
你确定你没有输入 '8.o' 吗? - Ian2thedv
@user3755419 这与Eclipse无关,而与您的系统语言环境有关。例如,在法国,使用逗号代替点号。如果您的语言环境设置为类似这样的内容,它将坚持使用逗号而不是点号。 - chiastic-security
显示剩余3条评论
1个回答

2

如我之前的评论所述(我想将其转换为答案),这是一个Locale的问题(从变量名称来看,似乎你是意大利人)。使用逗号而不是点号(8,5,而不是8.5),或者使用适合点号的正确Locale初始化Scanner,像这样:

Scanner scanner = new Scanner(System.in).useLocale(Locale.US);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接