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

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

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

慕设计8404539 2017-09-25 12:39:11
查看完整描述

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 就能得到浮点结果了。

查看完整回答
3 反对 回复 2017-09-25
  • 慕设计8404539
    慕设计8404539
    对打错了 26.25少打了个2 , 我是个小白,想改行,学习这个
?
NullMoneyException

TA贡献9条经验 获得超16个赞

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

查看完整回答
1 反对 回复 2017-09-25
  • 3 回答
  • 0 关注
  • 1491 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信