C语言中 long double 该怎怎么用?

问大家一下,
#include<stdio.h>
main()
{
long double x;
x=2222222222.222226666L;
printf("x=%f\n",x);
}
x=2222222222.222227
Press any key to continue
问:Long double 是18~19位。书中说“在编写实型常量时,L表示该常量为long double长双精度类型”。
为什么结果不会是x=2222222222.222226666 呢?

long double 是C99新出关键字,要使用,需要先确认编译器是否支持C99。
可以在程序中定义
long double a;
如果编译不出错,则支持。否则可能不支持。
支持情况下,可以如上进行定义,赋值运算操作与其它基本类型相同。
输入输出时,使用格式字符%llf。
比如
scanf("%llf", &a);
printf("get a's value is %llf\n", a);
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-07
最新测试结果
VC8 VC2012均不支持 long double!!
它们会将其当做double处理

gcc3.2 gcc4.7 gcc4.8可以支持到long double,
精度约为18.96488973位(十进制位)或63位2进制位
一位符号位
32位指数
可以用printf("%Lf\n", x)输出本回答被提问者采纳
第2个回答  2013-07-19
long double对应的格式控制符是%Lf
第3个回答  2020-01-21
首先你没有设置小数精确的位数,软件默认输出6位小数,且最后一位遵循四舍五入的原则。
其次我就不知道了。。。。。

C语言中 long double 该怎怎么用?
在输入和输出时,long double需要特殊的格式化字符。使用%llf可以正确显示或读取这个类型的值。例如,要读取用户输入并赋值给a,用scanf("%llf", &a);,而打印long double类型的变量值时,用printf("get a's value is %llf\\n", a);总结,long double在C语言中是一个用于高精度浮点数的类型,其...

C语言中 long double 该怎么用?
long double 是C99新出关键字,要使用,需要先确认编译器是否支持C99。\\x0d\\x0a可以在程序中定义\\x0d\\x0along double a;\\x0d\\x0a如果编译不出错,则支持。否则可能不支持。\\x0d\\x0a支持情况下,可以如上进行定义,赋值运算操作与其它基本类型相同。\\x0d\\x0a输入输出时,使用格式字符%llf。

C语言中想输出double和long double型用%什么?
在C语言中,输出`double`和`long double`型数据,使用控制字符`%lf`和`%Lf`。`lf`用于输出`double`,`Lf`用于输出`long double`。例如:`printf("%lf", yourDoubleVariable);`可以用来输出`double`型变量。同样,`printf("%Lf", yourLongDoubleVariable);`可以用来输出`long double`型变量。控制...

C语言中如何正确地用scanf给long double变量赋值?
在 C 语言中,可以使用 %Lf 格式说明符来使用 scanf 函数为 long double 类型的变量赋值,示例如下:include <stdio.h>int main() { long double num;printf("请输入一个 long double 类型的数: ");scanf("%Lf", &num);printf("您输入的数是: %Lf\\n", num);return 0;} ...

C语言中long double型用%什么?
long double v = 1.23;printf("%Lf\\n", v); \/\/ 使用%Lf格式输出long double类型 return 0;} 如果你想了解当前编译器对long double的具体实现,如其占用的字节数,可以使用printf("%d", sizeof(long double));来获取这个信息。总之,%Lf是C语言中处理long double型变量的正确格式符,但需要...

C语言中long double的问题。
long double输出时候要用lf修饰 printf("x=%lf\\n",x);float ,double ,long double默认输出都是小数点后6位,double 和long double 想要输出多的话,可以用格式符来输出 printf("x=%.10lf\\n",x); 这样就能输出小数点后10位。

C语言中想输出double和long double型用%什么?
1、%f 是输出 float 型变量;%f 是输出 double 型变量;%Lf 是输出 long double 型变量。2、在C语言中,对于数值类型只有通过printf类函数输出这一种方式,比如printf, sprintf, fprintf等。这类函数输出时要求有格式符号,其中long double的格式符号为%Lf。以下是一个简单的参考代码,输出到标准输出...

c语言的long double怎么输出
用L表示,通常和浮点转换说明一起使用,表示long double类型的值。详细请参考:(来自《C Primer Plus(第6版-中文版)》第83页)

C语言中long double的问题
一般来讲,long double不应当使用%f,这个错误是最严重的错误之一。(堆栈错误)此类错误可能导致系统的崩溃,程序不能正常运行等。有些C编译器没有实现long double,即long double就是double,具体的只能看你的情况了。如果需要做数值计算,最好使用MPFR之类的,这种浮点数计算只能在精度要求很低的情况下...

c语言的long double怎么输出
float用%f, double用%ld ,long bouble 用%Lf include <stdio.h>int main(){long double x = 1;printf("%Lf", x);return 0;}

相似回答