c语言测试浮点数类型double,小数点精度。
·double数据类型表达的也是一个近似的数,不是准确的,小数点后的n位有误差,浮点数的位数越大,误差越大,到17位的时候,误差了1,基本上不能用了。
·用“==”可以比较两个double数值是否
#include<stdio.h>
int main(){
double a=9.9;
printf("两位:%lf\n",a);
if(a==9.9) printf("两位:%lf\n",a);
a=9.99;
printf("三位:%lf\n",a);
if(a==9.99) printf("三位:%lf\n",a);
a=9.999;
printf("四位:%lf\n",a);
if(a==9.999) printf("四位:%lf\n",a);
a=9.9999;
printf("五位:%lf\n",a);
if(a==9.9999) printf("五位:%lf\n",a);
a=9.99999;
printf("六位:%lf\n",a);
if(a==9.99999) printf("六位:%lf\n",a);
a=9.999999;
printf("七位:%lf\n",a);
if(a==9.999999) printf("七位:%lf\n",a);
a=9.9999999;
printf("八位:%lf\n",a);
if(a==9.9999999) printf("八位:%lf\n",a);
return 0;
}