设a和b均为double型变量,且a=5.5,b=2.5,则表达式:(int)a+b/b的值是多少,为什么
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 22:33:26
xSn@?&P/IHw7ƸC.I Z*5`_zy/t̶ i[ɗΜsά8g2|:V@v@IG0˂)DI!ITb/ z]Zl6|m[JXGzMUDD%#=dC8Ty؏6vؗex\"F4@aNY*qA&HMh
.s
gSqZВłz)=0^W婁e]zfZ0:íbqm hƬiQ%.#]M#6&- p}_"ޢG&sdZ"F#HP)3ҷO%a+@"U($b,9?2[.V1Van]Ȥf_,QsxPZeq%K䜰Z_ZuN6Mb=9#fR@h8o
D
设a和b均为double型变量,且a=5.5,b=2.5,则表达式:(int)a+b/b的值是多少,为什么
设a和b均为double型变量,且a=5.5,b=2.5,则表达式:(int)a+b/b的值是多少,为什么
设a和b均为double型变量,且a=5.5,b=2.5,则表达式:(int)a+b/b的值是多少,为什么
我这么跟你解释:
这个涉及到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 低