一个小小的C语言问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:38:45
#include<stdio.h>
void main()
{
double a;
a=3.141592612;
printf("a=%f\n",a);
}
运行结果:3.141593
结果为什么不是3.141592612啊 双精度不是可以提供15-16位有效数字吗?

#include<stdio.h>
void main()
{
double a;
a=3.141592612;
printf("a=%18.9f\n",a);
}
双精度提供的16位有效数字需要这样来:%m.nf其中n为输出的有效数字的位数至多为16位,而默认的是6位。

%f float有效位6位 小数点后只能有6位....
double是双精度...