关于C语言中输入浮点数

求大神讲解一下浮点数输入的方法和注意事项啊,我老是得不到想要的答案呢~~~~(>_<)~~~~
比如:

#include <stdio.h>
int main()
{
    double a;
    scanf("%f",&a);
    printf("a=%f",a);
    return 0;
}

我输进去12.1
出来的结果是
12.1
a=-92559604618046016000000000000000000000000000000000000000000000.000000请按任意
键继续. . .

我知道了诶……那时没学,现在懂了

#include
int main()
{
double a;
scanf("%lf",&a);
printf("a=%lf",a);
return 0;
}
你懂什么了,说出来啊,这个样子才对的。

浮点数输出精度需要控制

double输入需要%lf

对于scanf,读取double类型需要%lf,对于printf,只需要%f就可以了。

scanf()接收输入时格式化字符串要严格的匹配才行,double应该是%lf。

scanf("%lf",&a);
scanf("%lf",&a);

除了scanf时用 %lf 输出的时候 %.6lf 来控制一下输出精度

如果想完全相同建议把输入的值看作字符串类型,这样不管你输入小数点后几位都能输出同样的字符串了

#include <stdio.h>
int main()
{
    double a[40];
    scanf("%s",a);
    printf("a=%s\n",a);
    getchar();
    getchar();
    return 0;
}