为什么C程序运行结果是这样?

来源:百度知道 编辑:UC知道 时间:2024/05/23 17:25:10
#include<stdio.h>
main()
{

double a,b;
a=3.1415926535898;
b=3.1415926535898;
printf("a=%f\n",a);
printf("b=%lf\n",b);

}

答案是:
a=3.141593
b=3.141593

为什么?%f 是单精度浮点型输出,%lf是双精度浮点输出,有效位不同,可结果怎么据一样呢?求助,请帮忙。运行环境VC++ 6.0

默认的舍入位是这么多。 lf只是可以表示的最大数和最小数的区别。谢谢!

#include<stdio.h>
main()
{

double a,b;
a=3.1415926535898;
b=3.1415926535898;
printf("a=%f\n",a);
printf("b=%0.13f\n",b);

}
干脆自己指定精度吧?不是更好?