Java 数值1到100的平均值计算期间的变量值不正确 public class SumandAverage{ 公共静态void main(字符串[]args){ 整数和=0; 双倍平均; int lowerBound=1; int上限=100; 而(lowerBound
您正在除以整数,因此结果是整数。请改为除以双倍:Java 数值1到100的平均值计算期间的变量值不正确 public class SumandAverage{ 公共静态void main(字符串[]args){ 整数和=0; 双倍平均; int lowerBound=1; int上限=100; 而(lowerBound,java,Java,您正在除以整数,因此结果是整数。请改为除以双倍: public class SumandAverage { public static void main(String[] args) { int sum=0; double average; int lowerBound = 1; int upperBound = 100; while(lowerBound<=upperBound) { sum = sum+l
public class SumandAverage {
public static void main(String[] args) {
int sum=0;
double average;
int lowerBound = 1;
int upperBound = 100;
while(lowerBound<=upperBound) {
sum = sum+lowerBound;
lowerBound++;
}
System.out.println("The Sum is "+sum);
average=sum/upperBound;
System.out.println("The average is " + average);
}
}
5050/100=50,因为整数除法只能产生一个整数。将它赋给双变量后,得到50.0。int sum=0;
average=(double)sum/upperBound;
双倍平均;
int lowerBound=1;
int上限=100;
虽然(LowerBound感谢您花时间来研究这个问题。您的评论帮助我解决了这个问题,但我仍然对以下几点感到困惑:1.我将var平均值定义为double 2.我的结果平均值=总和/上限结果为50.0,数据类型为double。3.但预期结果为50.5。奇怪!@pinkraysum/upperBound
是一个divi两个整数的小数点。因此结果为int-50。一旦将该结果赋给一个双精度变量,它将被转换为double,并变为50.0。如果将sum
或upperBound
转换为double,则执行浮点除法,结果为50.5。@pinkray我的答案有问题吗?您不接受它必须是错误。完全是无意的。你的回答帮助了我。
int sum=0;
double average;
int lowerBound = 1;
int upperBound = 100;
while(lowerBound<=upperBound) {
sum = sum+lowerBound;
lowerBound++;
}
System.out.println("The Sum is "+sum);
average=(double)sum/upperBound; //change
System.out.println("The average is " + average);