首页 > 解决方案 > C语言中%lg的含义

问题描述

我不知道“putout result is %lg”这句话是什么意思。我尝试使用%lg而不是%lf在 中printf,像这样:

double a;
scanf("%lf",&a);
.....
printf("%lg",a);
return 0;

标签: c

解决方案


%lg对于printf要么具有未定义的行为(C89),要么行为类似于%g(C99)。

  • 切勿用于%lg打印,使用g转换说明符而不l打印double. 由于默认参数提升,%g也可用于打印s。float

对于fscanf,l具有浮点格式意味着参数的类型是double而不是float。由于所有浮点修饰符都接受所有相同的格式,因此习惯上使用它,因为它的行为与系列中%lf的完全相同。%lgscanf

  • 扫描双倍时更%lf喜欢。%lg

推荐阅读