无法打印长长双输出

时间:2016-02-29 14:05:56

标签: c printf double

我的问题很简单,如何打印长长双输出?我知道如何打印一个长双,

printf("%Lf",output);

2 个答案:

答案 0 :(得分:6)

long long double到底是什么意思?你的编译器真的接受这种语法吗?旧版gcc中似乎存在一个错误,用于解析此long long double并将其识别为long long int。很久以前就修复了这个错误:https://gcc.gnu.org/bugzilla/show_bug.cgi?id=6634

如您所知,C标准支持长整数类型:

  • long long int可以使用%lld%lli
  • 格式打印
  • unsigned long long int,格式为%llu%llo%llx

长浮点类型:

  • long double打印有%Lf%Lg%Le

某些特定目标的实现可能存在其他类型,但不是标准的:

这两个都没有在常见编译器上实现为long long double ...

至少可以说,这些格式不受广泛支持,并且未定义标准printf转换。查看编译器文档,了解可能的扩展或特定函数,以转换这些扩展精度浮点格式(如果它们在目标上完全可用)。

答案 1 :(得分:1)

long longlong long intlong double(取决于编译器)。

没有 long long double。永远不会。