问答详情
源自:2-9 强制类型转换

我改了一下,为啥输出的结果是 num的整数部分是2

#include <stdio.h>
int main()
{
    double num = 2.5;    //定义浮点型变量num并赋值为2.5
 int mum=(int)num;
    printf("num的整数部分是%d\n", mum); 
    return 0;
}

提问者:幕布斯7025141 2017-12-24 00:47

个回答

  • 星辰I瀚海
    2018-01-21 21:02:04

    你是赋值num后,又将强制转换的(int)num定义给int型的mum,当然输出num整数部分为2了。尽管你将你的num定义给了mum,但输出的最终是它的值而不是名。

  • hibb
    2017-12-28 19:27:31

    你看这个我想你就明白了

    数据类型和表达式都必须加括号,如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。

    由此可知:(int)mum即(int)(mum)

  • 在下薛步桧
    2017-12-26 11:05:19

    因为你输出格式里规定:    num的整数部分为.........。      如果你改掉前面的 num 。输出的语句就会改变

  • qq_I_103
    2017-12-24 01:25:56

    强制转换的运算不遵循四舍五入原则,结果是对的