我的问题很简单,如何打印长长双输出?我知道如何打印一个长双,
printf("%Lf",output);
答案 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
。某些特定目标的实现可能存在其他类型,但不是标准的:
__float128
或binary128
,也称为四倍精度,在此处记录:https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format
__float256
或binary256
,也称为八倍精度,在此处记录:https://en.wikipedia.org/wiki/Octuple-precision_floating-point_format
这两个都没有在常见编译器上实现为long long double
...
至少可以说,这些格式不受广泛支持,并且未定义标准printf
转换。查看编译器文档,了解可能的扩展或特定函数,以转换这些扩展精度浮点格式(如果它们在目标上完全可用)。
答案 1 :(得分:1)
有long long
,long long int
和long double
(取决于编译器)。
没有 long long double
。永远不会。