猿问

求解,各位大佬大神!!


public class HelloWorld {
    public static void main(String[] args) {
        
// 创建对象,对象名为hello
HelloWorld hello = new HelloWorld();
        // 调用方法,传入两门课程的成绩
hello.calcAvg(94, 81);
}
/*
* 功能:计算两门课程考试成绩的平均分并输出平均分
* 定义一个包含两个参数的方法,用来传入两门课程的成绩
*/
public void calcAvg(int score1, int score2){
    int sum = score1 + score2;
    double avg = sum/2;
    System.out.println(avg);
}

结果问题:

  int sum = score1 + score2;
    double avg = sum/2;
    System.out.println(avg);

这样输出的结果是87.0,而

    double sum = score1 + score2;
    double avg = sum/2;
    System.out.println(avg);

这样输出的结果是87.5,这是为什么啊,求解啊 各位大佬!

Felix_Sun
浏览 677回答 1
1回答

驱虎吞狼猎

public void calcAvg(int score1, int score2){         int sum = score1 + score2;         double avg = sum/2;         System.out.println(avg); }主要看这里的代码.double avg = sum/2;sum是int类型,这个时候除以2所得到的结果也是int类型,(94+81)/2=87,然后再转为double类型就变成了87.0如果你把score1和score2都定义为double类型,就会正常显示了
随时随地看视频慕课网APP
我要回答