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

来源:2-5 格式化输出语句

IT饱

2015-02-11 14:21

各位好!
在我所学的课本中 有一个这样的输出%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有严格的规定
但请问在输出语句中这俩个有什么区别

写回答 关注

2回答

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

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

    IT饱

    非常感谢!C89中对于printf中的%lf未定义

    2015-02-13 08:46:45

    共 2 条回复 >

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

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

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926207 学习 · 20797 问题

查看课程

相似问题