关于C语言中double型输出的问题
main(){doublea;scanf("%lf",&a);printf("%lf\n",a);getch();}为什么这个double型不是有16位有效数字吗??为什...
main()
{
double a;
scanf("%lf",&a);
printf("%lf\n",a);
getch();
}
为什么这个double型不是有16位有效数字吗??为什么输入3.12121212 输出是3.121212???这跟float没区别啊???谢谢 展开
{
double a;
scanf("%lf",&a);
printf("%lf\n",a);
getch();
}
为什么这个double型不是有16位有效数字吗??为什么输入3.12121212 输出是3.121212???这跟float没区别啊???谢谢 展开
展开全部
C语言默认是输出8位。
输出改成 printf("%.16lf\n",a);
这样就行了。
输出改成 printf("%.16lf\n",a);
这样就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%f,全部输出,而且输出6位小数.
P.S. float的精度也远远超过6个小数
P.S. float的精度也远远超过6个小数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int main()
{
double a;
scanf("%lf",&a);
printf("%-20.10lf\n",a);
}
{
double a;
scanf("%lf",&a);
printf("%-20.10lf\n",a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用printf("%.16lf\n",a);即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你理解错咯
double的意思是可以有16位有效数字
而在固定格式输出的时候,都默认的是6位
用double的时候f前面加l是没有效果的
你要输出长度,可以写,%0.8f,这样就是输出8个有效数字了。
拓展资料:
double a;
scanf("%f",&a); //应用scanf("%lf",&a);
执行上面语句时,发现double类型的输入不能使用%f进行输入,得用%lf才能正常得到a的值。
而在输出double类型时却可以用%f,这是因为printf("%f",a);在执行时C自动将float型的参数转换成double型。
故double型的输入输出形式如下:
double a;
scanf("%lf",&a);
printf("%f",a);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询