#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
不知道你这个问题是否已经解决, 如果还没有解决的话: