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

%lf 和%f 为什么在printf函数输出后都是六位小数

double 和float 对应的%lf和%f 为什么在printf函数输出后都是六位小数,double不是精度更高吗,不是应该有更多小数吗,如果不是的话为什么不直接用%f 而要用%lf.输出结果上没有什么区别。

#include <stdio.h>
int main()
{
    char c = 'a';
    int n = c;        //将c赋值给n
    float f = c;      //将c赋值给f
    double d = c;    //将c赋值给d
    printf("%d\n",n);
    printf("%f\n",f);
    printf("%lf\n",d);
    return 0;    
}


正在回答

4 回答

我也一直有这个疑问,如果%f和%lf输出没区别,那为什么还要有%lf呢,直接用%f就行了。double不是也可以用%f输出吗,搞不懂,哪个大神来解释一下

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

唉,没人来吗

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

你理解错了1.2f表示两位小数好像是,你百度下就清楚了

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

慕无忌1515682 提问者

那是一个L...不是1.2f
2015-04-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

%lf 和%f 为什么在printf函数输出后都是六位小数

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