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

想知道这样为什么不行?得出来的num是随机数了

#include <stdio.h>

int main()

{

    double num = 2.5;     

    num = (int)num;

    printf("num的整数部分是%d\n", num);  

    return 0;

}



正在回答

1 回答

http://img1.sycdn.imooc.com//569f05f300014a3006690438.jpg

不是随机数,而是0,因为你用格式化字符串%d(它是专门用来输出整数的),输出了一个浮点数。

http://img1.sycdn.imooc.com//569f065700010d5110240742.jpg

http://img1.sycdn.imooc.com//569f066d0001294e06690438.jpg

就行啦

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

当我握住风 提问者

我也是刚刚发现的。。。但是用%d输出浮点数,既然没有提示错误,那是不是代表这是有意义的?
2016-01-20 回复 有任何疑惑可以回复我~
#2

Deny_小田 回复 当我握住风 提问者

double a = 2.5; printf("%d",(int)a); 这个你试试?
2016-01-20 回复 有任何疑惑可以回复我~
#3

Deny_小田 回复 Deny_小田

实在不行,可以这样: double a = 2.5; a = (int)a; printf("%.0f",a);
2016-01-20 回复 有任何疑惑可以回复我~
#4

当我握住风 提问者 回复 Deny_小田

可以的
2016-01-20 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

想知道这样为什么不行?得出来的num是随机数了

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