lwhnx 发表于 2017-12-6 21:26:59

求PI近似值


S1E16-2 动动手求PI的值
看看我哪里错了 跳不出循环 谢谢。

#include <stdio.h>
#include <math.h>

int main()
{
        float PI = 1, flag1, flag2;
        float i = -1;
        float a = 1;
        float n;
        for (n = 1;; n++)
        {
                flag1 = 1 / (2 * n + 1);
                flag2 = i * flag1;
                PI = PI + flag2;

                if (flag1 < 0.00000001)
                {
                        break;
                }

                i = -i;

        }
        printf("PI = %.7f", PI * 4);

        getchar();
}

BngThea 发表于 2017-12-6 22:26:52

float型达不到这个精度

lwhnx 发表于 2017-12-7 15:28:21

BngThea 发表于 2017-12-6 22:26
float型达不到这个精度

long long ?

BngThea 发表于 2017-12-7 15:37:31

lwhnx 发表于 2017-12-7 15:28
long long ?

你是浮点数运算,用long long更没有用处了,应该用double 试试,我指的是if判断的精度

lwhnx 发表于 2017-12-7 17:07:43

BngThea 发表于 2017-12-7 15:37
你是浮点数运算,用long long更没有用处了,应该用double 试试,我指的是if判断的精度

解决了 谢谢。
页: [1]
查看完整版本: 求PI近似值