Java 输入不匹配异常

Java 输入不匹配异常,java,exception,Java,Exception,我想问一下,为什么我会得到一个异常的输入 我声明了一个类型为double的变量,当我给它赋值时,例如(4.6),它会抛出: Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:909) at java.util.Scanner.next(Scanner.java:1530) at java.util.Scanner.ne

我想问一下,为什么我会得到一个异常的
输入

我声明了一个类型为
double
的变量,当我给它赋值时,例如(4.6),它会抛出:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:909)
    at java.util.Scanner.next(Scanner.java:1530)
    at java.util.Scanner.nextDouble(Scanner.java:2456)
    at Exercises.ComputingMeanAndStandartDeviation_5_21.main(ComputingMeanAndStandartDeviation_5_21.java:18)
代码如下:

package Exercises;

import java.util.*;

public class ComputingMeanAndStandartDeviation_5_21 
{

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

        double sum = 0;
        double number = 1;
        double counter = 1;
        System.out.println("Enter ten numbers: ");
        while(counter<10)
        {
            number = input.nextDouble();
            sum +=number;
            counter ++;
        }

        System.out.println(sum + "   " + number + " " + counter);
        double mean = sum / counter;
        System.out.println("The mean is: " + mean);
    }

}
成套练习;
导入java.util.*;
公共类计算平均值和标准偏差\u 5\u 21
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
双和=0;
双数=1;
双计数器=1;
System.out.println(“输入十个数字:”);
而(计数器区域设置中的问题

Locale.setDefault(Locale.US);
Scanner input = new Scanner(System.in);

US十进制定界符“,”(78.12)而不是“,”(78,12)

您的
Scanner
对象期望读取一个
双精度
,但实际上看到了一些您无法转换为
双精度
的内容,它在java.util.Scanner.throwFor的线程“main”java.util.InputMismatchException中给了我1 2 3 4.6异常(Scanner.java:909)在java.util.Scanner.next(Scanner.java:1530)在java.util.Scanner.nextDouble(Scanner.java:2456)在Exercises.computingMeansandstandartdevision_5_21.main(computingMeansandstandartdevision_5_21.java:18)对于任何浮点值,它都会抛出inputmismatchexcepiton@Doesn“t如果实际存在的是
double
,则最好只读取double,尝试使用if语句和
hasNextDouble()
hasNextInt()
扫描器分类的方法机器是否可能需要逗号作为十进制分隔符(例如,您是否为法国公司工作)。您可以通过实例化java.text.DecimalFormatSymbols并调用getDecimalSeparator()进行测试然后输出它返回的内容?是的,伙计,你是对的。我以前玩过语言环境,现在它工作了。回答很好,但你是说我们是十进制的(不是分隔符)?