Java语言中的复合运算符会自动进行类型转换

计算1/1-1/2+1/3+……+1/99-1/100

public class LoopControlExercise08{
    public static void main(String[] args){
        int  sum = 0;
        for (int  i = 1; i <= 100 ; i++) {
            if (i % 2 == 0) {
                sum -= (1.0 / i);
            }else{
                sum += (1.0 / i);
            }
        }
        System.out.println(sum);
    }
}

运行结果如下所示:

经过查阅资料得知复合运算符会自动进行类型的转换才得到这个结果。

要得到正确的答案,只需要修改一下sum的类型即可,本例中修改为double类型。

public class LoopControlExercise08{
    public static void main(String[] args){
        double  sum = 0;
        for (int  i = 1; i <= 100 ; i++) {
            if (i % 2 == 0) {
                sum -= (1.0 / i);
            }else{
                sum += (1.0 / i);
            }
        }
        System.out.println(sum);
    }
}

结果如下所示:

 

 

posted @ 2021-09-23 19:17  雨少不如年少  阅读(55)  评论(0编辑  收藏  举报