谁知道画红线位置为什么?

http://img.mukewang.com/59c888400001c93d05370414.jpg

慕设计8404539
浏览 1541回答 3
3回答

onemoo

先说一下,你这句注释里的问题写错了吧?  sum / 4.0 的结果不应该是 26.25 吗?!就当你是笔误了吧,所以你是问“为什么 sum/4 结果是 26? 而 sum/4.0 结果是 26.25 ?”sum / 4  这里除号的左右两侧都是整型,发生的是整型间除法,结果也是整型,也就是结果只取小数点前的整数部分。 即便 avg 是浮点型,但等号右侧计算出的结果是没有小数点的整型,所以最后 avg 也只得到整型部分。sum / 4.0 这里除号右侧是浮点型,那么发生的就是浮点除法。等号左侧的整型 sum 值会被转为 double 值再参与运算,运算结果也是浮点型。 所以最后 avg 就能得到浮点结果了。

NullMoneyException

不可能6.25   是26.25吧   这点说明你java基础没掌握 基本数据类型没搞懂  int/int 结果肯定是int  小数位就丢失了    int/double 会上升为double/double   结果为double   不同数据类型不能直接运算  低位上升为高位 再进行处理    主要是精度丢失的问题  char a=1+1  看看编译能通过吗   如果实在不好理解先去学2进制吧
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java