簡體   English   中英

C ++ Pi逼近程序

[英]C++ Pi approximation program

我只是在學習C ++,所以我開始使用以下系列制作一個簡單的程序來近似pi的值: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”和“ iteration”都正確增加),直到這行為止:

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) ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM