关于int和float的问题
我刚学习c语言,在c++6.0上写了这个小程序发现输出结果是个错误的数而,M改成9999或者将N改成10000就能输出正确结果了,这是和int的范围有关吗?#include <stdio.h>
#define N 100000
#define M 99999
int main()
{
int z;
z=N*M;
printf("M*N=%d\n",z);
return 0;
}
但是我将z改成浮点型,将M,N也转化成浮点型为什么就能输出正确结果了?浮点型的可以指定的数据宽度最大是多少啊?
#include <stdio.h>
#define N 100000
#define M 99999
int main()
{
float x,y,z;
x=N;
y=M;
z=x*y;
printf("M*N=%10.0f\n",z);
return 0;
}