程序如下public static void main(String[] args) {
double sum = 0.0;
System.out.println("输入需要计算的数值:");
Scanner reader = new Scanner(System.in );
String str = reader.nextLine();
int count = 0;
while(!str.equals("stop")){
sum = sum + Double.parseDouble(str);
count++;
System.out.println("现在输入的是第"+count+"个数值");
str = reader.nextLine();
}
System.out.println("数值的总和是"+ sum + "平均数为:" + ((sum/count)==0.0?0.0:new Double((sum/count)).doubleValue()));
}输入需要计算的数值:
stop
数值的总和是0.0平均数为:NaN我已经转换过了,为什么平均数还是NaN? 多谢
double sum = 0.0;
System.out.println("输入需要计算的数值:");
Scanner reader = new Scanner(System.in );
String str = reader.nextLine();
int count = 0;
while(!str.equals("stop")){
sum = sum + Double.parseDouble(str);
count++;
System.out.println("现在输入的是第"+count+"个数值");
str = reader.nextLine();
}
System.out.println("数值的总和是"+ sum + "平均数为:" + ((sum/count)==0.0?0.0:new Double((sum/count)).doubleValue()));
}输入需要计算的数值:
stop
数值的总和是0.0平均数为:NaN我已经转换过了,为什么平均数还是NaN? 多谢
count初始值是0
sum/count 就是NaN
count为0,就是没有输入
没有输入,哪来的平均值
输入需要计算的数值:
3
现在输入的是第1个数值
4
现在输入的是第2个数值
stop
数值的总和是7.0平均数为:3.5
这句中的((sum/count)==0.0?0.0:new Double((sum/count)).doubleValue())没有必要吧,直接sum/count就可以了。