各位好!
在我所学的课本中 有一个这样的输出%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有严格的规定
但请问在输出语句中这俩个有什么区别
printf的%f说明符的确既可以输出float型又可以输出double型。根据“默认参数提升”规则(在printf这样的函数的可变参数列表中,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双精度数。
在printf中对于float和double类型都应该用%f。
虽然把%lf用于double也不报错。