C语言 运行结果中为什么双精度实型只输出小数点后六位

2024-11-18 11:23:51
推荐回答(5个)
回答(1):

在C语言中,输出double类型(双精度实型)以及float类型(单精度实型)时,默认输出6位小数。

比如这样的代码:

double a = 1;
printf("%lf\n", a);

输出会是

1.000000

但是有时六位会显得很长,没必要。比如计算平均分,一到两位小数就足够了。

可是有时六位又不够,需要更多位小数,比如计算高精度平方根。

这时可以用printf的格式控制。

如果要输出n位小数,那么可以用%.nlf的格式。其中n为数字。

如要输出10位小数,那么

printf("%.10lf\n", a);

即可


类似的输出1位小数

printf("%.1lf\n", a);

回答(2):

printf("%lf",p);
是一般输出形式默认是 6位吧
你 试试
printf("%.10f",p);
也许就 可以了

回答(3):

只输出六位小数,这是默认的,可以改变,如:printf("%6",d)

回答(4):

楼上的回答是对的,printf要求你输出格式,默认6位小数,你可以指定输出几位

回答(5):

你可以自己设置输出精度的
printf("%.nf",p); n为你的精度
如:printf("%.6f",p); //输出为小数点后6位