整形变量的除法运算
当3和2都为整形变量的时候。3/2=1 2/3=0. 3.0/2.0=1.5 那么2.0/3.0=? 等于0.6还是0.666666666666666666666666666666666666666666666666666666666666.........?
----------------解决方案--------------------------------------------------------
这个上机验证.
----------------解决方案--------------------------------------------------------
应该是在输出时决定输出的位数吧
----------------解决方案--------------------------------------------------------
不好说
如果是a=2.0,b=3.0 a/b 那结果是0 ;如果是这样写:printf("%d",2.0/3.0); 那结果是1431655765 因为数据溢出
----------------解决方案--------------------------------------------------------
应该是printf("%f",2.0/3.0)
输出0.666667
----------------解决方案--------------------------------------------------------
看你是什么类型的2.0了
float只有六位(或者是八位)小数有效数字
double好像是15位
----------------解决方案--------------------------------------------------------
和类型有关吧
----------------解决方案--------------------------------------------------------
类型吧
----------------解决方案--------------------------------------------------------
一、
#include<stdio.h>
main()
{
int a=2,b=3;
float c,d;
c=a/b;
d=b/a;
printf("c=%d\n",c);
printf("c=%f\n",c);
printf("d=%d\n",d);
printf("d=%f\n",d);
getch();
}
不多说了,
结果是:c=0
c=0.000000
d=0
d=1.000000
二、
#include<stdio.h>
main()
{
float a=2,b=3;
float c,d;
c=a/b;
d=b/a;
printf("c=%d\n",c);
printf("c=%f\n",c);
printf("d=%d\n",d);
printf("d=%f\n",d);
getch();
}
结果是: c=0
c=0.666667
d=0
d=1.500000
###注意一和二的区别
----------------解决方案--------------------------------------------------------