|
|
1
4
在标准C中,除非另有规定,否则19.4和9.7这样的文字应该是双倍的(例如19.4f和9.7f)。 编译器将使用整数除函数来计算x/y(如果x和y都是int(兼容)类型),或者如果x和y中至少有一个是浮点类型,则使用浮点除函数来计算x/y。 float b=(int)19.4/(int)9.7//result=2.000000,为什么? 您要求将19.4强制转换为int,将9.7强制转换为int,这有效地要求编译器计算19/9=2的整数除法,然后将其提升为float,以便在b.2中存储,结果变为2.0。 PMCD。 |
|
|
2
4
在第2行中,您将输入值转换为整数,然后执行整数除(因为除法的两个操作数都是整数,所以除法是在整数空间中完成的——这意味着任何小数部分的result都将被截断)。 所以,19/9=2 然后,为了将这个整数转换成一个浮点,它隐式地将2转换回2.000000。 |
|
|
3
1
不,必须是2。当你把一个int除以一个int,你得到一个int,因此2。你可以做恶作剧,然后把它转换成你喜欢的任何东西,但小数已经不见了。 |
|
|
4
1
将两个整数相除,得到一个整数。将一个浮点数和一个整数相除,就得到了一个浮点数。 |
|
|
5
1
|