永发信息网

c语言,为什么是9.85 不是9

答案:2  悬赏:0  手机版
解决时间 2021-01-06 15:49
  • 提问者网友:酱爆肉
  • 2021-01-06 01:55
c语言,为什么是9.85 不是9
最佳答案
  • 五星知识达人网友:白昼之月
  • 2021-01-06 03:13
float x=5.6,y=2.9;
(int)(x+y)+(x-y)/2 应该是 9.35
括号优先级最高,其次是强转型(int),最后才是运算符号 从右向左结合
所以公式相当于
(int)8.5+2.7/2
相当于
8+2,7/2 => 8+1.35=9.35
全部回答
  • 1楼网友:罪歌
  • 2021-01-06 03:56
因为(int)只对(x+y)起了作用,对(x-y)/2部分无用;然后你需要知道的是int+float,int会先转成float,即实际会按照float+float计算(当然也许会实际提升至double+double)。追问只对x+y 答案是9.35但是答案9.85
追答答案错了,刚刚运行了,就是9.35。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯