C语言问题 有效数字.

我想问float有效数字是6 double有效数字是15 这个有效数字6 跟15 是指什么? 是指输出的字6个 和15个 还是什么?

第1个回答  2012-04-24
是指第一个不是0的开始算,从那个数开始到最后一位,如要保留6位 的话,1就变成了1.00000.如0.078和0.78与小数点无关,均为两位有效数字。506与220均为三位有效数字。追问

但是 我上面 那段 代码 是用double 但是 为什么 输出的 还是保留六位的?

第2个回答  2012-04-24
因为默认的浮点数输出就是6位的,要想改变输出的长度,要用输出格式来控制追问

不关是 用float 还是double? 都是默认输出 6位的? 请问 要怎么 控制?

追答

嗯,都是6位输出。比如说只要输出小数点后面的4位小数
double d = 1.23456789;
printf("%.4lf\n",d);

第3个回答  2012-04-24
指小数点后面的位数,版本的事追问

但是 我上面 那段 代码 是用double 但是 为什么 输出的 还是保留六位的? 我用的是vc++

追答

默认6位,不过可以通过程序控制为想要的位数;如:
printf("%12.15lf\n",x);表示输出占12格的小数位数为15为的x的值;
printf("%.8lf\n",x);表示输出小数位数为8为的x的值。

第4个回答  2012-04-24
小数点后的位数追问

#include
#include
int main()
{
double a,b,c,s,area;
a=3.67;
b=5.43;
c=6.21;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%lf\tb=%lf\tc=%lf\n",a,b,c);
printf("area=%lf\n",area);
return 0;
}

我这段代码 他输出的, 小数后面也是6位. 我用的是double

相似回答