我在计算 pi 时遇到问题,当我将 long double 放入变量时出现一个大数字,但不是正确的值,如果你用 double 更改 calcf 函数,它就可以工作。我的代码:
#include <stdio.h>
#include <math.h>
long double calc(int n, double denominador) {
//printf("%lf e",(pow(-1,n))/denominador);
//printf("%d\n",(denominador));
long double var = (long double) ((4.0*(pow(-1.0,n)))/denominador);
printf("%Lf\n",(long double)var);
return var;
}
double calcf(int n, int denominador) {
//printf("%lf e",(pow(-1,n))/denominador);
//printf("%d\n",(denominador));
double var = (4.0*(pow(-1.0,n)))/denominador;
//printf("%lf",var);
return var;
}
int main() {
int NUMERO = 100000000;
long double pi = 4L;
double pif = 4;
int i;
int n=1;
printf("%d e %d",sizeof(double),sizeof(long double));
for (i=3;i<NUMERO;i+=2) {
pi += calc(n,(double) i);
//pif += calcf(n,i);
n++;
}
printf("PI: %1.50Lf\n",pi);
}
我做错了什么?
谢谢你。