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

问大家一下,#include<stdio.h>main(){longdoublex;x=2222222222.222226666L;printf("x=%f\n",x);... 问大家一下,
#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 呢?
展开
 我来答
风若远去何人留
推荐于2018-12-18 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450105
专业C/C++软件开发

向TA提问 私信TA
展开全部
long double 是C99新出关键字,要使用,需要先确认编译器是否支持C99。
可以在程序中定义
long double a;
如果编译不出错,则支持。否则可能不支持。
支持情况下,可以如上进行定义,赋值运算操作与其它基本类型相同。
输入输出时,使用格式字符%llf。
比如
scanf("%llf", &a);
printf("get a's value is %llf\n", a);
hiczb
推荐于2017-10-07 · TA获得超过226个赞
知道小有建树答主
回答量:133
采纳率:100%
帮助的人:180万
展开全部
最新测试结果
VC8 VC2012均不支持 long double!!
它们会将其当做double处理

gcc3.2 gcc4.7 gcc4.8可以支持到long double,
精度约为18.96488973位(十进制位)或63位2进制位
一位符号位
32位指数
可以用printf("%Lf\n", x)输出
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
2013-07-19 · TA获得超过6805个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1563万
展开全部
long double对应的格式控制符是%Lf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友51ba99f
2020-01-21
知道答主
回答量:7
采纳率:0%
帮助的人:1.3万
展开全部
首先你没有设置小数精确的位数,软件默认输出6位小数,且最后一位遵循四舍五入的原则。
其次我就不知道了。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式