songshu.wert 发表于 2021-8-10 21:04:41

S1E16动动手另一种写法

本帖最后由 songshu.wert 于 2021-8-10 21:06 编辑

根据以下已知公式求 Pi 的近似值,要求正确计算出小数点后前 7 位(即3.1415926)。

为什么写出来结果是3.1415927
                   而不是3.1415926


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

int main ()
{
        double pi = 0;
        double i = 1;
        double term = 1;
       
        for (i = 1; term >= 1e-8; i++)
        {
                term = 1 / (2 * i - 1);
               
                if ((int)i % 2 == 0)
                {
                        pi = pi - term;
                }
                else
                {
                        pi = pi + term;
                }
        }
       
        printf("pi = %10.7f", pi * 4);
       
        return 0;
}

wangka 发表于 2021-8-10 21:09:56

因为电脑四舍五入了

wangka 发表于 2021-8-10 21:12:43

本帖最后由 wangka 于 2021-8-10 21:14 编辑

因为/后面是求精确的数,而3.14159265358......太长了,四舍五入(解决方法课上有讲,认真听课{:10_282:} )
求最佳!!!!{:10_257:}

songshu.wert 发表于 2021-8-10 21:27:48

wangka 发表于 2021-8-10 21:12
因为/后面是求精确的数,而3.14159265358......太长了,四舍五入(解决方法课上有讲,认真听课...

解决方法具体是?。。。{:10_254:}

wangka 发表于 2021-8-10 21:31:12

试试round(term,7)
页: [1]
查看完整版本: S1E16动动手另一种写法