visual C++Pi近似程序

visual C++ Pi approximation program

本文关键字:程序 C++Pi visual      更新时间:2023-10-16

我只是在学习C++,所以我已经开始制作一个简单的程序来近似圆周率的值,使用级数:pi^6/960=1+1/3^6+1/5^6…等等,继续使用奇数的分母到6的幂。这是我的代码:

/*-------------------------------------------
 *  AUTHOR:                                 *
 *  PROGRAM NAME: Pi Calculator             *
 *  PROGRAM FUNCTION: Uses an iterative     *
 *      process to calculate pi to 16       *
 *      decimal places                      *
 *------------------------------------------*/
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double pi_approximation = 0; // the approximated value of pi
double iteration = 3; // number used that increases to increase accuracy
double sum = 1; // the cumulative temporary total
int main ()
{
    while (true) // endlessly loops
    {
        sum = sum + pow(iteration,-6); // does the next step in the series
        iteration = iteration + 2; // increments iteration
        pi_approximation = pow((sum * 960),(1 / 6)); // solves the equation for pi
        cout << setprecision (20) << pi_approximation << "n"; // prints pi to maximum precision permitted with a double
    }
}

代码似乎运行良好(变量"sum"answers"迭代"都正确增加),直到这里的这一行:

pi_approximation = pow((sum * 960),(1 / 6)); // solves the equation for pi

由于某种原因,"pi_approximation"保留其值1,因此打印到"cout"的文本为"1"。

问题是整数除法:

(1 / 6)将返回0。我相信你知道,任何0的幂都是1。

对于浮点除法,请更改为((double)1 / (double)6)(1.0 / 6.0)

(1 / 6) == 0,因为它使用整数数学-您可能想要(1.0 / 6.0)。。。