i have a problem in calc of pi, when i put long double in variable appears a big number, but not the correct value, if you change for calcf function with double it works. My code:
#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);
}
What i'm doing wrong?
Thank you.