如何在C中printf long double?

elf*_*mer 4 c double

[更新]无论我使用lf,结果仍然是相同的Lf,llf...我正在使用代码块来编译和运行我的C程序.我正在使用GNU GCC编译器.

我尝试在不同的计算机上打印长双浮动类型,包括两个Windows和一个Mac,但事实证明它们都没有像我预期的那样工作.代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    double d = 6.232345235;   //8 bytes
    long double ld = 5.5767458458;

    printf("%lf\n", ld);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

返回值是-0.000000或另一个非常大的负数,我现在不记得了.

任何帮助是极大的赞赏!:d

Iha*_*imi 10

long doublein 的正确格式说明符printf()"%Lf"

  • @elfsummer:那么你需要确定你正在使用的编译器,C库和平台.C标准说"%Lf"`对于"long double"是正确的.如果这对您的系统不起作用,那么(a)您的系统被破坏或(b)您犯了一个错误,例如在编辑后没有重新编译.尽管如此,(b)比(a)更可能,尽管另一个实际上是不可能的.但是如果没有相反的证据(实际代码,样本输出),很难相信你的实现是破碎的. (3认同)