关于求∏的值。。。
#include<stdio.h># include<math.h>
void main()
{
long s ;
long double n,t,pi;
t=1;pi=0;n=1.0;s=1;
while(fabs(t)>1e-6)
{
pi=pi+t;n=n+2;s=-s;t=s/n;
}
pi=pi*4;
printf("pi=%10.6f\n",pi);
}
得出
如果把long改为int long double改为float就会得到3.141594.。
这是为什么呢。。有点不明白。。望高手解答一下。。
我又用for 编了一个
#include<stdio.h>
#include<math.h>
void main()
{
int s;
float n,t,pi;
for(t=1,pi=0,n=1,s=1;fabs(t)>1e-6;pi=pi+t,n=n+2,s=-s,t=s/n)
continue;
pi=pi*4;
printf("pi=%10.6f\n",pi);
}
为什么输出为3.141594而不是3.141593
很费解。。
[ 本帖最后由 LEED 于 2009-10-2 11:37 编辑 ]