求助! float类型问题!
下面的程序为什么一个是0,另一个是20
#include<stdio.h>
#include<conio.h>
int main(void)
{
float i=20;
int j;
j=i;
printf("i=%d\n",i);
printf("j=%d\n",j);
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
你的输出格式符和定义的格式不匹配。
----------------解决方案--------------------------------------------------------
int 可以向float 转换
反过来好象就不可以了
----------------解决方案--------------------------------------------------------
我的意思是两个都应该是20啊
----------------解决方案--------------------------------------------------------
根据楼主的意思,我把程序改了一下
#include<stdio.h>
#include<conio.h>
int main(void)
{
float i=20;
int j;
j=i;
printf("i=%d\n",(int)i);/*强制转换成整型,否则将类型不匹配*/
printf("j=%d\n",j);
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
都说的什么啊!我还不知道改可以,我的意思是我那样为什么不行,要改我早改了
~天下无敌~
----------------解决方案--------------------------------------------------------
一个实型数据一般在内存中占4个字节,它与整型数据的存储方式不同,是按照指数形式存储的。系统把一个实数分成小数部分和指数部分分别存放,这样一来存储的数据整数部分就为0了,你把输出格式定义为整型,当然只输出整数部分0了。
----------------解决方案--------------------------------------------------------
你写的是i=%d但定义为float,当输出的时候系统无法识别,就乱为0了
----------------解决方案--------------------------------------------------------
以下是引用huaixiaozi在2006-4-9 21:39:00的发言:
一个实型数据一般在内存中占4个字节,它与整型数据的存储方式不同,是按照指数形式存储的。系统把一个实数分成小数部分和指数部分分别存放,这样一来存储的数据整数部分就为0了,你把输出格式定义为整型,当然只输出整数部分0了。
一个实型数据一般在内存中占4个字节,它与整型数据的存储方式不同,是按照指数形式存储的。系统把一个实数分成小数部分和指数部分分别存放,这样一来存储的数据整数部分就为0了,你把输出格式定义为整型,当然只输出整数部分0了。
高手,顶
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<conio.h>
int main(void)
{
float i=20;
int j;
j=i;
printf("i=%f\n",i);
printf("j=%d\n",j);
getch();
return 0;
}
----------------解决方案--------------------------------------------------------