设a和b均为double型变量,且a=5.5,b=2.5,则表达式:(int)a+b/b的值是多少,为什么
答案:5 悬赏:30
解决时间 2021-03-07 15:04
- 提问者网友:巴黎塔下许过得承诺
- 2021-03-06 21:16
设a和b均为double型变量,且a=5.5,b=2.5,则表达式:(int)a+b/b的值是多少,为什么
最佳答案
- 二级知识专家网友:冷态度
- 2021-03-06 22:12
(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相加了。
无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
参考资料来源:百度百科-强制类型转换
参考资料来源:百度百科-数据类型
(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相加了。
无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
参考资料来源:百度百科-强制类型转换
参考资料来源:百度百科-数据类型
全部回答
- 1楼网友:啵啵桃汀
- 2021-03-07 01:34
(int)a+b/b
=5+1.0
=6.0 -------->结果是double型的。
- 2楼网友:蜜罐小熊
- 2021-03-07 00:02
答案是D,因为(int)a 是强制将a转换为int型,可以得到(int)a=5; b是double型,b/b=1.000000;由于是int与double型相加,会将int型转换为double型再相加,最终得到的答案是6.000000。
- 3楼网友:高冷不撩人
- 2021-03-06 23:27
我这么跟你解释:
这个涉及到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 低
- 4楼网友:懂得ㄋ、沉默
- 2021-03-06 22:50
(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++取整
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯