永发信息网

C语言题double(1+2*10-11/2)=16.0,为什么等于16.0而不是15.5?

答案:3  悬赏:30  手机版
解决时间 2021-02-07 13:16
  • 提问者网友:姑娘长的好罪过
  • 2021-02-07 09:03
C语言题double(1+2*10-11/2)=16.0,为什么等于16.0而不是15.5?
最佳答案
  • 五星知识达人网友:话散在刀尖上
  • 2021-02-07 09:25
1+2*10-11/2
这部分计算的时候都是整型的 结果只取整数 然后对结果转为double型
所以11/2=5 而不是5.5
于是结果是16,0
全部回答
  • 1楼网友:千夜
  • 2021-02-07 12:36
11/2 结果是int型整数,结果为5,所以最终结果为16 再看看别人怎么说的。
  • 2楼网友:长青诗
  • 2021-02-07 11:00
因为表达式 (1+2*10-11/2 )都是整型数据,11/2的结果为5,所以表达式求的值为16,而你又强制转换为double类型,所以是16.0,如果表达式11/2改为11.0/2,计算结果就是15.5了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯