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

关于强制类型转换

    double avg=(double)(age1+age2+age3+age4)/4;这一行,我  

这样为什么会运行失败,不算强制转换吗?

求指点

int avg=(double)(age1+age2+age3+age4)/4;

        //double avg=(age1+age2+age3+age4)/4;这一行是正确的

正在回答

1 回答

int avg=(double)(age1+age2+age3+age4)/4

你把后面四个数的和强制转换成double类型了,double类型不能直接赋值给前面的int类型

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

半梦半痴狂 提问者

可否附加一个强制转换的 代码
2019-06-29 回复 有任何疑惑可以回复我~
#2

半梦半痴狂 提问者

//double avg=(int) sum/4; double avg=sum/4; 我重新捋了一下思路,发现应该是首先给他 双精度浮点型,然后改变后面的形式,可是发现后面这两个并没有区别。
2019-06-29 回复 有任何疑惑可以回复我~
#3

聪明又努力的小可爱 回复 半梦半痴狂 提问者

这两个确实没有区别 sum本来就是int型 第一行把本来就是int型的sum转换成int型再除以4,由于前面是double,所以结果是double,第二行也是一样
2019-06-29 回复 有任何疑惑可以回复我~
#4

半梦半痴狂 提问者 回复 聪明又努力的小可爱

int avg=sum/4; double avg=(double)avg;这样写的,我先计算,在强制转换类型。,它提示报错了
2019-06-29 回复 有任何疑惑可以回复我~
#5

聪明又努力的小可爱 回复 半梦半痴狂 提问者

第一句已经定义了avg,是一个int型 第二句不能再定义double型的avg,它已经定义过了 直接double avg=sum/4
2019-06-29 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165161    人
  • 解答问题       17581    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

关于强制类型转换

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