快捷导航

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

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

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

先说一下,你这句注释里的问题写错了吧? sum / 4.0 的结果不应该是 26.25 吗?!
就当你是笔误了吧,所以你是问“为什么 sum/4 结果是 26? 而 sum/4.0 结果是 26.25 ?”


sum / 4 这里除号的左右两侧都是整型,发生的是整型间除法,结果也是整型,也就是结果只取小数点前的整数部分。 即便 avg 是浮点型,但等号右侧计算出的结果是没有小数点的整型,所以最后 avg 也只得到整型部分。


sum / 4.0 这里除号右侧是浮点型,那么发生的就是浮点除法。等号左侧的整型 sum 值会被转为 double 值再参与运算,运算结果也是浮点型。 所以最后 avg 就能得到浮点结果了。
回复

使用道具 举报

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

使用道具 举报

可能感兴趣的问答

发新帖
TA的信息
  • 会员所属: 注册会员
  • 认证信息: 邮箱认证手机认证
  • 微信访问
  • 手机APP