Calc pi с long double в C

У меня проблема с вычислением числа Пи, когда я помещаю длинное двойное значение в переменную, появляется большое число, но не правильное значение, если вы измените функцию вычисления числа на двойное. работает. Мой код:

#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);
}

Что я делаю не так?

Спасибо.

0
задан kavain 5 August 2011 в 04:00
поделиться