#include <stdio.h>
int main()
{
float fa,fb,fc,fsum;
double d;
fa=3141.592678;
fb=6.026e-27;
fsum=fa+fb ;
d=31415926.78;
printf("float 类型数据的打印结果:\n");
printf("fa=%f\t fb=%f\t fsum=%7.2f\n",fa,fb,fsum);//用格式符%f 输出 float 类型变量
printf("fa=%e\t fb=%e\t fsum=%e\n",fa,fb,fsum); //用格式符%e 输出 float 类型变量
printf("double 类型数据的打印结果:\n ");
printf("d=%lf, d=%e\n",d,d);
return 0;
}
float 类型数据的打印结果:
fa=3141.592773 fb=0.000000 fsum=3141.59
fa=3.141593e+003 fb=6.026000e-027 fsum=3.141593e+003
double 类型数据的打印结果:
d=31415926.780000, d=3.141593e+007
Press any key to continue
这fa怎么从3141.592678变成3141.592773了 ,fb也约成了0
float的精度是有效数字6~7位,fb=6.026e-27这个已经远远超出范围了。
对于浮点数的计算,计算机是有一定的有效精度的,精度位数后面的结果不会精确执行
float是单精度,有效数字位为6 – 7位,,double双精度,有效数字位为15 – 16位