Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数值1到100的平均值计算期间的变量值不正确 public class SumandAverage{ 公共静态void main(字符串[]args){ 整数和=0; 双倍平均; int lowerBound=1; int上限=100; 而(lowerBound_Java - Fatal编程技术网

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。奇怪!@pinkray
sum/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);