为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在第13行用%lf也不是%f

#include <stdio.h>

int main()

{

    char c='a';

    int n=97;         //将c赋值给n

    float f;     //将c赋值给f

    double d;     //将c赋值给d

    n=c;

    f=n;

    d=f;

    printf("%d\n",n);

    printf("%f\n",f);

    printf("%lf\n",d);

    return 0;    

}


正在回答

3 回答

因为double比float表示的值大。lf的意思是long float,也就是长浮点型。

0 回复 有任何疑惑可以回复我~

我也不懂


0 回复 有任何疑惑可以回复我~

%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。
其中:
float,单精度浮点型,对应%f.
double,双精度浮点型,对应%lf.

在用于输出时:
float类型可以使用%lf格式,但不会有任何好处。
double类型如果使用了%f格式可能会导致输出错误。

在用于输入时:
double 类型使用了%f格式,会导致输入值错误。
float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃。

所以在输入输出时,一定要区分好double和float,而使用对应的格式符号。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么在第13行用%lf也不是%f

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信