C语言中long double的问题。
#include<stdio.h>main(){longdoublex;x=2222222222.222226666L;printf("x=%f\n",x);}x=222...
#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 呢? 展开
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 呢? 展开
3个回答
2013-07-18
展开全部
受到总体的精度限制,不可能总是能够完整地输出小数部分。
#include<stdio.h>
main()
{
long double x;
x=2222222.222226666L;
printf("x=%.9lf\n",x);
}
#include<stdio.h>
main()
{
long double x;
x=2222222.222226666L;
printf("x=%.9lf\n",x);
}
追问
是哪些“总体的精度”?能详细的说说吗?谢谢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
默认小数点后面输出的位数!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询