У меня проблема с вычислением числа Пи, когда я помещаю длинное двойное значение в переменную, появляется большое число, но не правильное значение, если вы измените функцию вычисления числа на двойное. работает. Мой код:
#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);
}
Что я делаю не так?
Спасибо.