(int)((double)(5/2)+2.5)的值

 我来答
创作者TdXLEhOEJu
2020-01-24 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:33%
帮助的人:934万
展开全部
获得5这个答案从哪里来的?
明确告诉你
这是错的
答案是4
(double)(5/2)----本来5/2应该值为整型,但是被强制转换为double型,所以结果为2.5
这个解释不正确
(double)(5/2)转换的是5/2的结果
而5
2均为整型,所以在5/2的时候,已经确定了结果是2
再double转换后为2.00000
加上后面的2.5
结果就是4.5000
再转换为int就是4
除非是
(int)((double)5/2+2.5)
这样结果才是5
创作者75wpzt3AOy
2019-06-29 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:1215万
展开全部
不确定在计算上试一下就是了,我的机器结果是4
描述里面第一步显然忽悠人的,
(double)(5/2)将会是2.0
其实计算机更难预测结果的是某个double型x
=
5.0,然后它和整数5是相等、还是大于小于的情况是不确定的,所以x转换成整数时,常见写成(int)(x+0.0000001)
或者在知道x是整数的情况下,写成(int)(x+0.5)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者nWgevEnFzb
2019-06-27 · TA获得超过3.7万个赞
知道小有建树答主
回答量:1.2万
采纳率:35%
帮助的人:927万
展开全部
结果是4
注意(5/2)==2就可以了;
如果是(5.0/2.0)==2.5,结果就为5;
double(5/2)是把5/2结果转化成双精度。
int(4.5)是把4.5转换成整形,因而为4.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者XXYypszrQl
2019-06-25 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:34%
帮助的人:798万
展开全部
先运算两个整数相除5/2,得到的是2,
再强制double成2.000,
再与2.5相加,得到4.50000,
最后强制成整形4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式