为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

红砖 提问者

谢谢~但是关于“整数类型int不能强转为double浮点型”的意思是说 int可以自动转换为double 而不是强制转换 吗? 要实现26.25只要将sum变成double 后面在计算的时候4也会按照double来计算好像 我也不是很清楚哈哈^_^
2016-01-22 回复 有任何疑惑可以回复我~
#2

红砖 提问者

非常感谢!
2016-01-23 回复 有任何疑惑可以回复我~

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


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

红砖 提问者

谢谢~我的意思是 题目压根就是错的 包括他给出的答案......→_→
2016-01-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信