问答详情
源自:2-5 格式化输出语句

输出语句中 %f %lf的区别,输出语句不是输入

各位好!
在我所学的课本中 有一个这样的输出%lf
#include<stdio.h>
int main()
{
   float a=1.1;
   double b=2.2;
   printf("%f,%f\n",a,b);
   printf("%lf,%lf\n",a,b);
   return 0;
}
运行结果为
1.1000000,2.2000000
1.1000000,2.2000000


在输入语句中对%f和%lf有严格的规定
但请问在输出语句中这俩个有什么区别

提问者:IT饱 2015-02-11 14:21

个回答

  • 逆时针行走
    2015-02-11 15:11:00
    已采纳

    printf的%f说明符的确既可以输出float型又可以输出double型。根据“默认参数提升”规则(在printf这样的函数的可变参数列表中,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双精度数。

  • onemoo
    2015-02-11 15:05:53

    在printf中对于float和double类型都应该用%f。

    虽然把%lf用于double也不报错。