Java:将整数除以double是行不通的

Cas*_*erg 1 java

public class SumAndAverage {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int sum = 0;
        int num;
        for(num = 0; num <= 100; num++){ 
            sum += num; 
        }

        double average = ((double)sum) / num;
        System.out.println("The sum is " + sum);
        System.out.println("The average is " + average);

    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

总和是5050,平均是50.0

怎么了:

5050/100 = 50.5不是50.0

Den*_*ret 6

当这个循环结束时

for(num = 0; num <= 100; num++){ 
Run Code Online (Sandbox Code Playgroud)

num101,不是100.因为发生的情况是测试条件直到它为假,并且这发生在num>100.