为了账号安全,请及时绑定邮箱和手机立即绑定

我改了一下,为啥输出的结果是 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;
}

正在回答

4 回答

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

0 回复 有任何疑惑可以回复我~

你看这个我想你就明白了

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

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

1 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

幕布斯7025141 提问者

我的疑问是为什么不是输出 mum的整数部分是2
2017-12-24 回复 有任何疑惑可以回复我~
#2

z3phyr 回复 幕布斯7025141 提问者

因为输出的文字是你引号里面所写的内容,变化的只有%d,值是你mum的值,你把变量改成什么名字,输出的都不会变
2017-12-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信