为什么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
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);
}
干脆自己指定精度吧?不是更好?