私は自分自身にC++を教えていますが、この練習用の質問では、PIを30桁以上に計算できるコードを書くように求められます。私のコンピューターでは、double /longdoubleはどちらも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
精度を上げるための提案はありますか、それともこれは問題ではありませんか?あるいは、私がここで学ぶべきだと思う別のレッスンがある場合は、遠慮なくそれを提供してください。ありがとうございました!