3 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
先说一下,你这句注释里的问题写错了吧? sum / 4.0 的结果不应该是 26.25 吗?!
就当你是笔误了吧,所以你是问“为什么 sum/4 结果是 26? 而 sum/4.0 结果是 26.25 ?”
sum / 4 这里除号的左右两侧都是整型,发生的是整型间除法,结果也是整型,也就是结果只取小数点前的整数部分。 即便 avg 是浮点型,但等号右侧计算出的结果是没有小数点的整型,所以最后 avg 也只得到整型部分。
sum / 4.0 这里除号右侧是浮点型,那么发生的就是浮点除法。等号左侧的整型 sum 值会被转为 double 值再参与运算,运算结果也是浮点型。 所以最后 avg 就能得到浮点结果了。
NullMoneyException
TA贡献9条经验 获得超16个赞
不可能6.25 是26.25吧 这点说明你java基础没掌握 基本数据类型没搞懂 int/int 结果肯定是int 小数位就丢失了 int/double 会上升为double/double 结果为double 不同数据类型不能直接运算 低位上升为高位 再进行处理 主要是精度丢失的问题 char a=1+1 看看编译能通过吗 如果实在不好理解先去学2进制吧
添加回答
举报
0/150
提交
取消