近似式
円周率を求める式の研究は古来から盛んです。今からでも遅くはなく、収束が速い簡潔な式を見つければ、歴史に名を留めるかも知れません。今回は、今でも円周率の計算に使われるマチンの公式を使ってみます。
収束が速い

マチンの公式はとにかく、収束の速い式です。プログラミングは「マチンの公式」ウィキペデア《マチンの公式による計算》を参考にさせて頂きました。arctan(1/5)とarctan(1/239)において、両者の偏角値に開きがあり、計算する項数を調整しています。
小数点以下、14桁まで、多くの算出法と同じ値が得られました。ひところ、算出桁数を競った時期があり、2016年に22.4兆桁の記録があります。
サンプルコード
<div id="pic0" style="width:580px; height:265px;">
<img src="https://aidesign.lolipop.jp/wp-content/uploads/2017/06/MachinFormula.png"></div>
<script type="text/javascript" charset="Shift_JIS">
const c5_239 = [0.2, 1/239];
const multiple = [16, 4];
var s = "マチンの公式を用いて円周率を算出<BR>"
document.write(s);
for(var j=0; j<=9; ++j){
var u = arctan(j, 0) - arctan(j, 1);
s = "m="+j+" 項数="+("0"+(4*j+4)).slice(-2)+" PI="+u+"<BR>";
document.write(s); /* 円周率を計算・出力 */
}
function arctan(m, num){ // 逆正接を求める
var v = 0;
var s = 1;
var w = num * 4; // 0, 1 ---> 0, 4
c = c5_239[num];
for(var n=1; n<=(6-w)*m+5-w; n+=2){ // 0:6*m+5, 1:2*m+1
var g = Math.pow(c, n);
v += s * g / n;
s = -s;
//console.log("N="+n+" V="+v+" G="+g);
}
v *= multiple[num];
return v;
}
</script>
</html>
実行結果

余談
document.write()の引数に式を指定すると文法エラーになり困りました。直前に変数に代入し、その変数を引数にすればエラーになりません。>