C++表达式4/8*100/2.0的值是多少呢 为什么答案是0.0 求详细解答 谢谢了

 我来答
zhourf2001
2012-06-23
知道答主
回答量:45
采纳率:0%
帮助的人:11.5万
展开全部
C/C++是一步一步算的,不会先看一下是什么数据类型,只有算到那一步才查看数据类型。
所以:4/8*100/2.0,先算4/8,都是整型,结果是0余4,整型除法会将余数去除,也不会算进小数,所以结果实际上是0;现在,表达式变成了0*100/2.0,先算0*100,得0;最后是0/2.0,有浮点数,把0转换成0.0,0.0/2.0得0。
最后一步是浮点数除法,所以结果是浮点数,因此最终是0.0而不是0。
匿名用户
2012-06-23
展开全部
顺序执行的,这几个运算符级别一样,所以4/8 =0的,然后0*100 还是0,最后0/2.0 强制转换成浮点数0,所以输出有小数点
追问
多谢了,4/8在什么时候是0  什么时候是0.5呢
追答
如果两都是整数相除,结果就去掉小数部分,如果其中有一个浮点数参与,结果就是0.5
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rich556677
2012-06-23 · TA获得超过2028个赞
知道小有建树答主
回答量:1365
采纳率:0%
帮助的人:900万
展开全部
4/8 = 0.5 = 0,所以 0× 100 = 0 /2.0 = 0

你改成 4.0 /8 * 100 /2.0就不是0了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式