中易网

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

答案:5  悬赏:50  
解决时间 2021-01-11 01:45
(int)((double)(5/2)+2.5)的值
最佳答案
获得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追问也就是说,不管5/2之前定义的是什么类型答案都是2,然后根据类型再转化吗?
那么如果是5.4/2呢?追答(5/2)是在括号里面的,在C语言中 括号大于天。有个括号罩着 那么不管括号外面有什么东东,括号里面的运算都不会受影响
所以不管何时
(5/2)都等同于(2)
类似的(5.4/2)都等同于(2.7) 因为不同类型计算,会自动升格为"高级类型"
在这里会先转换为float/double来计算(5.4的类型) 具体是float还是double 看编译器设置,默认一般为double追问再问一下哦,float和double类型下出来的(2.7)有什么区别啊?追答float 和double只是范围和精度不同
2.7这样简单又比较小的数字 两个类型没什么区别
全部回答
((double)5)/2才是2.5
(double)(5/2)=(double)2
2+2.5=4.5
int 4.5 =4
答案是4
先运算两个整数相除5/2,得到的是2,
再强制double成2.000,
再与2.5相加,得到4.50000,
最后强制成整形4
不确定在计算上试一下就是了,我的机器结果是4
描述里面第一步显然忽悠人的, (double)(5/2)将会是2.0
其实计算机更难预测结果的是某个double型x = 5.0,然后它和整数5是相等、还是大于小于的情况是不确定的,所以x转换成整数时,常见写成(int)(x+0.0000001) 或者在知道x是整数的情况下,写成(int)(x+0.5)
答案是4~别乱说
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我是特种兵1好看还是2好看?
恋人为什么要亲嘴?习俗从何而来呢?
怎么解开这个皮带急急急急死我了
去嘉德拍拍卖公司用提前预约吗
使用哪个录屏工具最好,最好的录屏是?
10.1x6.8的简便计算
微信斗地主残局37关怎么过?
均衡生与普通生的区别
y=sinx+1/x
求一个ios的游戏app 一个比较老的游戏能同时
神舟战神 K680C-i7 D1与炫龙X7 Plus哪个好
世说新语中陈元芳元方入门不顾无理吗
头发十度伤,用冷烫怎样才会烫不焦?
please,pleased......区别
南京高科荣境那边买房可靠吗?
推荐资讯
怎么能把zippo声音调的清脆
1,4,9,16,()()
-出自那个电影的对白-
昌盛汽车修配中心地址在什么地方,我要处理点
fbd 2*55 对旋风机额定电流是多少
(2010?南昌)如图所示,开关S1闭合,当S2由1
小温馨的歌词
用马字可以组成什么新字呢?
945人,其中辍学1人,辍学率是多少?
2007年4月14日我国发射了什么卫星
什么语句可以获得当前SQLSERVER正在执行查询
请问有部讲在外国人家当保姆的上海电视剧叫什
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?