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

求解答哦!谢谢!

问?double avg=sum/4;与double avg=sum/4.0;前者结果是26.0后者结果为26.25,这是为什么????

正在回答

2 回答

是这样的,首先avg被你声明为double类型,但是运算里面,除数sum=105是整型,被除数4也是整型。除数和被除数都是整型的计算结果也会是整型。然后计算机会先计算105/4的结果(结果为整型数),整型会把小数部分直接切掉,就是把26.25切成26,然后再按照你要求的double输出,就加上小数位,26的小数位是26.0,所以这时候输出的就是26.0

第二个avg=sum/4.0,因为除数或者被除数中有一个是浮点类型的话,计算器会自动把结果变成浮点类型,sum/4.0的结果就是26.25,然后再按照你声明的double类型输出,就还是26.25



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

double avg = sum / 4;

因为4是基本类型int,所以105/4的结果只能是整数26,但是因为avg是double类型,所以自动转为26.0(这个转换必然是表达式sum/4为先,int ---> double为后)

double avg = sum / 4.0;

这时,即使sum为int类型,sum/4.0的结果一定和4.0一样是double类型,所以结果为26.25,答案没有取整数。

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

举报

0/150
提交
取消

求解答哦!谢谢!

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