设a和b均为double型变量,且a=5.5,b=2.5,则表达式:(int)a+b/b的值是多少,为什么

 我来答
SWDgreat
2019-07-24 · TA获得超过8405个赞
知道答主
回答量:1012
采纳率:80%
帮助的人:23.6万
展开全部

(int)a+b/b=6.0。

(int)a = 5;对于b/b,因为b是double类型,所以它们的商也是一个double类型,为2.5/2.5 = 1.0(注意要在小数位上加一个0);

最后计算5 + 1.0 = 6.0,因为5是int类型,而1.0是double类型,它们俩相加时,5将自动转换成double类型数据5.0,从而实际参加运算的是:5.0 + 1.0 = 6.0。

在C语言中,将一个double类型的数据强转成int类型时,将会丢弃该数据的小困肢数部分,而只保留它的整数部分。明乎

强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。

扩展资料

数字数据类型有Integer(整型)、Long(长整型)、Single(单精度浮点型)、Double(双精度浮点型)和 Currency(货币型)。

类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。

无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

参考资料来源:百度百科-强制类型转换

参考资料来源:百度百汪槐世科-数据类型

百度网友fa368d592
2019-07-29 · TA获得超过779个赞
知道答主
回答量:14
采纳率:0%
帮助的人:2308
展开全部

(int)a+b/b=6,应为(int)a就是将a取整,a取整后就是5(这里不能用四舍五入取整,舍弃小数部分取整,然后b/b就是2.5/2.5等于1,故(int)a+b/b=6。下图是用python计算的结果。

扩展资料:

c++取整:

1、直接赋值给整数变量。如:int i = 2.5; 或 i = (int) 2.5;这种方法采用的是舍去小数部分。

2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),而下面介绍的取整函数拍唤返回值是double。整数除法对正数的取整是舍去小数部分,可以用于你的问题。但是整数除法对负数的取整结果和使用的C编译器有关。

3、使用floor函数。floor(x)返回的是陆贺正小于或等于x的最大整数。如:floor(2.5) = 2,floor(-2.5) = -3。

4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:ceil(2.5) = 3,ceil(-2.5) = -2,floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。floor函数可以用于你的问题。

参早悔考资料来源:csdn官网-C++取整

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2010liuzuo
推荐于2017-11-25 · TA获得超过580个赞
知道小有建树答主
回答量:212
采纳率:75%
帮助的人:44.6万
展开全部
我这么跟你解释:
这个涉及到C语言中强制类型转换的知识。
在C语言中,将一个double类型的数据强转成int类型时,将会丢弃该数据的小数部分,而只保留它歼埋乱的整数部分,因此(int)a = 5;对于b/b,因为b是double类型液指,所以它们的氏档商也是一个double类型,为2.5/2.5 = 1.0(注意要在小数位上加一个0);最后计算5 + 1.0 = 6.0,因为5是int类型,而1.0是double类型,它们俩相加时,5将自动转换成double类型数据5.0,从而实际参加运算的是:5.0 + 1.0 = 6.0.

最后告诉你一个转换的法则:
double ←── float 高

long

unsigned

int ←── char,short 低
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乙浦泽52
2013-12-30 · TA获得超过141个赞
知道答主
回答量:45
采纳率:0%
帮助的人:38.3万
展开全部
答案是携腊冲D,因为(int)a 是强制将a转换为int型,可以得到(int)a=5; b是double型辩歼,b/b=1.000000;由于是int与double型相加,局孝会将int型转换为double型再相加,最终得到的答案是6.000000。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-07-19
展开全部
(int)a+b/b
=5+1.0
=6.0 -------->结果是double型的。
追问
可答案是6.000000
追答
6.0以%f或者%lf输出,结果可能是:6.000000,或者是6.00000000000000。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式