C语言%Lf与%lf有什么区别???

如题所述

1.在这里l和L没有区别,都是一个意思,%lf 中间的l 是 long的意思。%f输出的是 float类型的数,long 就是增加可输出的范围,表示double类型。

2.严格地说,在printf中float和double都应该用%f来格式化,因为在传入参数时float会被提升为double,而printf中%f就是用来表示double的。不过一些编译器也不把%lf视作错误而已。

注意:printf中%f的含义和scanf中是不一样的!在scanf中确实是用%f代表float,用%lf代表double。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-09
这个是没有区别,在编程的时候。。。。就是一个是大写一个是小写,仅此而已,望采纳哦
第2个回答  2019-10-31
#include <stdio.h>

int main(void){
   float a = 2.9e05L;
   double b = 2.9e05L;
   long double c = 2.9e05L;
   printf("%f\n", a);         //290000.000000
   printf("%lf\n", a);        //290000.000000
   printf("%Lf\n\n", a);      //0.000000

   printf("%f\n", b);         //290000.000000
   printf("%lf\n", b);        //290000.000000
   printf("%Lf\n\n", b);      //0.000000

   printf("%f\n", c);         //290000.000000
   printf("%lf\n", c);        //290000.000000
   printf("%Lf\n", c);        //290000.000000

   return 0;
}

运行环境:

OS: macOS Mojava  10.14.6

IDE: CLion 2019.2.4

编译器:Apple LLVM version 10.0.1 (clang-1001.0.46.4)

结论:%Lf 就是 long double,   %lf 就是 double,%f 就是 float

第3个回答  2022-09-03
有区别,一个表示double(%lf)另一个是c99里用来表示long double (%Lf)
第4个回答  2015-07-09
一个是大写一个是小写
相似回答