我正在自学C++,在这个练习问题上,它要求编写代码以计算30位以上的圆周率。我发现我的计算机上double / long double都只有16位精度。
我认为这个问题的教训是要能够计算超出可用精度的精度。那么我该怎么做呢?这是可能的吗?
我现在用于计算圆周率的代码是:
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
int main(){
double pi;
pi = 4*atan(1.0);
cout<<setprecision(30)<<pi;
return 0;
}
以下是为了比较而列出的输出结果,小数点后保留16位,圆周率保留30位。
3.1415926535897931
3.141592653589793238462643383279
有关提高准确性的建议吗?还是说这永远不重要?如果您认为我应该在这里学到其他课程,也可以自由地提供。谢谢!