课程
/后端开发
/Java
/Java入门第一季(IDEA工具)升级版
问?double avg=sum/4;与double avg=sum/4.0;前者结果是26.0后者结果为26.25,这是为什么????
2016-03-26
源自:Java入门第一季(IDEA工具)升级版 3-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
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,答案没有取整数。
举报
0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始
2 回答求帮忙解答谢谢
2 回答求大神解答,谢谢了
6 回答求详细解答!用for,谢谢
3 回答不理解,求各位大神道友解答,谢谢谢谢谢.........
3 回答详细解答 谢谢