0

现在我有这个小代码,我想将 pi 打印为 x 小数:

#include <iostream>
#include <gmpxx.h>
#include <math.h>

using namespace std;

int main()
{
    mpf_set_default_prec(1000);
    mpf_t pi;
    mpf_init(pi); 
    mpf_set_d(pi, atan(1)*4);
    cout << pi << endl;

}

我只是将 default_prec 设置为 1000,因为我认为这会给我很多小数,但无论我将其设置为什么,我都只能得到 5。我怎样才能打印更多?

4

1 回答 1

0

问题是atan(1)*4只会用单(或双)精度评估,因为这部分代码与 gmp 无关,将使用标准的 c++ 类型。该程序将首先评估 atan(1)*4,然后将结果转换为 mpf_t。在 GMP 主页上有一个关于如何计算多位数 Pi的页面。

于 2013-07-27T09:50:30.273 回答