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()进行测试然后输出它返回的内容?是的,伙计,你是对的。我以前玩过语言环境,现在它工作了。回答很好,但你是说我们是十进制的(不是分隔符)?