浮点和整型存储是站的空间是不一样的 。float为4个字,int为2个字。
main()
{
int m;
float n=0,sum=0;
for(m=1;m<=20;m++)
{
n=(m+1)/m;
sum=sum+n;
}
printf("%d\n",sum);
// %d-> %f
}
sum为float型,为4个字如:1111 1100
0000 0000
0000 0000
0000 0000;
假如要用int型读取sum的值,(int型为2个字如:0000 0000;)那么在此类读取的过程中会有数据的丢失,如果丢失的部分为1111 1100
0000 0000,那么你读取的数值就会为0000 0000
0000 0000,转换成10进制的输出就只有0了。
呵呵,等待高手指点这种情况丢失的到底是低16位还是高16位的。。