#include "stdio.h"
void main(void){
double pai,nDec,tmp;
int i;
nDec=1.0/10000000000;
for(pai=0,i=1;(tmp=1.0/i)>nDec;pai+=tmp,i+=4);
for(i=3;(tmp=1.0/i)>nDec;pai-=tmp,i+=4);
printf("pai=%.10f\n",4*pai);
}
#include
int main(void)
{
int i;
int j;
double pi=0;
double temp;
for(i=0;i<1000;i++)
{
temp=1;
for(j=0;j {
temp*=double(j+1)/(2*(j+1)+1);
}
pi+=temp;
}
printf("%0.10lf",2*pi);
return 0;
}
设置变量类型起码为unsigned int类型,然后使用int的低30位保存小数,高2位保存3,精度可以很高
PI=2cos(0);
这样可能会不太精确,你还可以用级数逼近