c语言中转换字符串问题

来源:百度知道 编辑:UC知道 时间:2024/07/01 06:29:24
#include "stdio.h"
#define pi 3.14
main()
{ int income=10;
printf("%d\n",pi*income);
}
上面的程序中printf结果为什么是26215? %d不是十进制带符号输出整形么?应该是31才对吧,可是如果printf("%f\n",pi*incom)的话答案是31.40000,那就说明程序本身没错误啊,可是%d的结果为什么不对呢?

#include "stdio.h"
#define pi 3.14
main()
{ int income=10;
printf("%d\n",(int)(pi*income));
}
强制类型转换一下,整形*浮点型出来还是浮点型,不能按%d输出,所以会产生意外的结果