c语言 float 和double的问题


float m;
    scanf("%f",&m);
    printf("%f",m); // 213.45 213.44997

用double的话会显示0.000000 这是什么情况 求解答
而且为什么输了213.45 会显示成213.44997

标准输入输出


double a=2.01233;
printf("The result is %f.\n",a);
printf("The result is %.3f.\n",a);
double b=5.012321;
printf("The result is %lf.\n",b);
printf("The result is %.3lf.\n",b);

你没有规定他那个输出了多少位小数。