题目描述:用公式π/4≈1-1/3+1/5-1/7+ 求其近似值,直到发现某一项加数的绝对值小于1e-6为止。
我写了如下图所示的程序来解决这个问题,得到的结果离计算器计算出来的π/4的大小(0.785 )差距很多,请问这是因为什么?float精度的问题吗?还是?
代码段:
int i=0; //控制循环
float mu=1.0; //分母的值
float present=-1.0; //当前加数
float sum=0.0; //求和
for(i=0;;)
{
if(fabs((float)present)<1e-6)
break;
else
{
present=-(present/mu);
sum+=present;
mu+=2;
}
}
printf("π/4的值为:%f\n",sum);
感谢!