import java.util.*;
class Averager
{
public static double unlimited()
{
int count = 0;
double sum = 0;
Scanner scan = new Scanner(System.in);
while(scan.hasNext())
{
double d = scan.nextDouble();
sum += d;
count++;
}
double ave = sum/count;
return ave;
}
public static void main(String[] args) {
System.out.println(unlimited()+"\n");
}
}
当我使用整数时没有错误,但如果我使用带点的数字,则会出现错误。
$ javac Averager.java; java Averager
0.5
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextDouble(Scanner.java:2387)
at Averager.unlimited(Averager.java:12)
at Averager.main(Averager.java:21)
据我所知,0.5 应该由 double 覆盖。如果不是,请有人纠正我。
最佳答案
它可能取决于语言环境。例如,十进制数在瑞典写为 0,5。
更改您的代码,使其显示例如:
Scanner scan = new Scanner(System.in);
scan.useLocale(Locale.US);
关于java - nextDouble() 在我输入 double 值时抛出 InputMismatchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929120/