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

为什么最后输出的numOne跟实际差距这么大,而且有时候还会是负整数,是哪里错了?

#include <stdio.h>

int main()

{

    double numOne = 2.5;      //定义浮点型变量num并赋值为2.5

    int numTwo = (int)numOne;

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

    printf("numTwo的小数部分是%f\n",numTwo);

    return 0;

}



hello.c: In function 'main':

hello.c:6:38: warning: format '%d' expects argument of type 'int', but argument 2 has type 'double' [-Wformat=]

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

                                      ^

hello.c:7:38: warning: format '%f' expects argument of type 'double', but argument 2 has type 'int' [-Wformat=]

     printf("numTwo的小数部分是%f\n",numTwo);

                                      ^

numOne的整数部分是1218162008

numTwo的小数部分是2.500000


正在回答

3 回答

反了,%d才是整数,,%f是6位小数。。。

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

qq_千影_0

然后你问D的小数部分。。。。,d就2个字节
2018-04-03 回复 有任何疑惑可以回复我~

我不知道对不对,但是这样改了以后应该是你想输出的

#include <stdio.h>

int main()

{

    double numOne = 2.5;      //定义浮点型变量num并赋值为2.5

    int numTwo = (int)numOne;

    printf("numOne的小数部分是%f\n",numOne);

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

    return 0;

}


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

    要注意%d是输出带符号的十进制整数,因为你原本的numOne是小数,所以换算成整数则是不一致,还会带有符号

  %f 是输出6位小数    可以再去看一下格式化输出语句的部分


正确写法应该是


printf("numOne的整数部分是%f\n",numOne);

 printf("numTwo的小数部分是%d\n",numTwo);


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

举报

0/150
提交
取消

为什么最后输出的numOne跟实际差距这么大,而且有时候还会是负整数,是哪里错了?

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