FLT_DIG, DBL_DIG的输出?

#include<stdio.h>
#include<float.h>
int main() {
    double a=1.0/3.0;
    double b = 1.0 / 3.0;

    printf("%.6f %.6f", a, b);
    printf("%.12f %.12f", a, b);
    printf("%.16f %.16f", a, b);

    printf("%f %f", FLT_DIG, DBL_DIG);
    return 0;
}

为什么FLT_DIG, DBL_DIG的输出都是 0.000000??
谢谢解答!

double a=1.0/3.0;
double b = 1.0 / 3.0;

->
float a=1.0/3.0;
float b = 1.0 / 3.0;

或者
%f换成 %lf

这是因为FLT_DIG, DBL_DIG其实指的是float和double的精度,也就是有几位小数,所以FLT_DIG, DBL_DIG都是整数,FLT_DIG=6, DBL_DIG=15,整数以单精度浮点数形式输出,所以都显示0.000000

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^