C primer plus第五版第四章第六题OTZ完全看不懂要我干什么,求大神解答

图片说明
这是原文的题目,下面是代码。
#include
#include
#include
#include
int main(void)
{
double a = 1.0 / 3.0;
float b = 1.0 / 3.0;
printf("%.4e\n", a);
printf("%.12e\n", a);
printf("%.16e\n", a);
printf("%.4f\n", b);
printf("%.12f\n", b);
printf("%.16f\n", b);
printf("%d\n", FLT_DIG);
printf("%d\n", DBL_DIG);
system("pause");
return 0;
}
从上面代码得出来的结果是不一致的,但是我没懂题目要我做上面?确定一致与否?写错代码也很有可能不一致啊OTZ求解答

double比float精度高,有效位不同

http://vdisk.weibo.com/s/d5aQ4Z6bBtshg

3.3333e-01
3.333333333333e-01
3.3333333333333331e-01
0.3333
0.333333343267
0.3333333432674408
6
15
这个是输出的结果,很明显1.0/3.0的显示值和这些值(FLT_DIG, DBL_DIG))不一致啊。