问答详情
源自:3-2 Java中的算术运算符

3.2节 任务 第八行 是不是有问题?

double avg = (double)sum/4;
double avg = sum/4;

直接拿四个数求出的平均值是26.25,那么题目的意思应该也是26.25不是吗?不应该用强转防止小数因为int被切掉吗?

提问者:红砖 2016-01-20 22:47

个回答

  • Marklov
    2016-01-20 23:23:51
    已采纳

    age1~age4都是int型,sum也是int型,整数类型int不能强转为double浮点型,因为int整型的存储范围比double浮点型小,如果要实现26.25,需要将前面的数据类型都改为double浮点型。不知道能不能帮到你

  • Fnsen
    2016-02-13 12:26:14

    package HelloJava;

    public class test1 {

        public static void main(String[] args) {

    double age1=24;

    double age2=18;

    double age3=36;

    double age4=27;

    double sum=age1+age2+age3+age4;

            double avg=sum/4;

            double minus=age1-age2;

            double newAge=--age1;

       System.out.println("年龄总和:"+sum);

        System.out.println("平均年龄:"+avg);

    System.out.println("年龄差值:"+minus);

    System.out.println("自减后的年龄:"+newAge);

    }

    }

    你是这个意思吗 double要输出26.25. 但是sum是int 除以4 还是int


  • 那一瞬温暖的微笑
    2016-01-20 23:11:22

    题目要求是26.0,所以sum/4不应强换,转换后26.25,不符合提议