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位小数,且最后一位遵循四舍五入的原则。
其次我就不知道了。。。。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网