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
这部分计算的时候都是整型的 结果只取整数 然后对结果转为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了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯