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

求int类变量的平均值问题

int sum=56;

double avg;

avg=sum/4;对么?还是应该写成avg=(double)sum/4;先把sum强制类型装换?


正在回答

2 回答

这是可以的,avg=sum/4;因为sum和4都是Int型,结合方向自右向左,所以先运行sum/4,得int型值14。再赋值给avg系统自动转换为double型,为14.000000。但如果sum的值不能被4整除的话,例如int sum=53,sum/4得到的int型值为13,avg值为13.000000,就错误了。要改变这种情况,可以用强制类型转换,如avg=(double)sum/4;也可以改变被除数的数据类型,如改为avg=sum/4.0,因为被除数为4.0为(double)float型,所以sum/4.0的值也变成(double)float 型,和avg的数据类型相一致,就不会出错。至于4.0系统判断为double还是float型,一般的系统都会根据语句灵活判断,一般不用考虑他的精度问题。

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

Kyne 提问者

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

补充楼上的 默认小数就是double 所以4.0系统直接会认为是double 而不是float

所以楼主直接avg=sum/4.0即可 avg=(double)sum/4也行



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

举报

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

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

进入课程

求int类变量的平均值问题

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