我认为double的%.12f打印出来应该是0.333333333333,为什么结果全是0,
float的%.12f也应该是0.333333333333,为什么也全是0。
#include <stdio.h>
#include <float.h>
int main(void)
{
double a=1.00/3.00;
float b=1.0/3.0;
printf("%.6f\n%.12f\n%.16f",a);
printf("%.6f\n%.12f\n%.16f",b);
printf("%d\n",FLT_DIG);
printf("%d\n",DBL_DIG);
return 0;
}
运行结果:
另外第三行出现应该是浮点值的上溢或者下溢的舍入问题?最好也能解释一下?