我的挑战
我目前正在使用 Node.js 解决 reddit 的/r/dailyprogrammer挑战,但遇到了障碍。由于我已经完成了这个单一练习的第 3 天,所以我决定寻求帮助。我拒绝在不知道如何做的情况下继续前进。
挑战#6:你今天的挑战是创建一个可以精确计算圆周率的程序,至少精确到小数点后 30 位。
我的障碍
我已经设法通过mathjs获得了我正在寻求的精度算术,但对于如何获得 30 位小数感到困惑。有谁知道可以帮助我实现目标的库、解决方法或配置?
/*jslint node: true */
"use strict";
var mathjs = require('mathjs'),
math = mathjs();
var i,
x,
pi;
console.log(Math.PI);
function getPi(i, x, pi) {
if (i === undefined) {
pi = math.eval('3 + (4/(2*3*4))');
i = 2;
x = 4;
getPi(i, x, pi);
} else {
pi = math.eval('pi + (4/('+x+'*'+x+1+'*'+x+2+')) - (4/('+x+2+'*'+x+3+'*'+x+4+'))');
x += 4;
i += 1;
if (x < 20000) {
getPi(i, x, pi);
} else {
console.log(pi);
}
}
}
getPi();
我已经完成了许多交互,在这个例子中我使用了 Nilakatha 系列: