#include<stdio.h> void main() { double a,b,c; // 这里double换成float,结果又会怎样呢……哈哈int d;b=3.3; //3.2999999999999998c=1.1; //1.1000000000000001 a=b/c;/* 调式时的值是2.9999999999999996 */ d=b/c; /* 因为3.3不能精确表示,1.1也不能精确表示*/ printf("a=%d\n",a); //printf("a=%f\n",a);换成这样结果也不同,不过可理解 printf("d=%d\n",d); if(a!=3) printf("a really not 3\n"); /* a=-1 打印出来为什么a=-1而不是3.000000呢 d=2 a really not 3请按任意键继续. . . 这里double换成float,结果是: a=0 d=2 请按任意键继续. . . */ }
|