在计算 pi 时,如何解决无法将大于 15 位数字转换为 bigNumber 的问题?

问题描述

代码是:

const c = mult(426880,sqrt(10005))
let calc = bn(0);

for (let k = 0; k < 20; k++) {
     
    const m = div(fac(mult(bn(6),k)),mult(fac(mult(bn(3),pow(fac(k),bn(3))))
    const l = add(mult(bn(545140134),k),bn(13591409))
    const x = pow(-262537412640768000,k)
    
    calc += mult(c,pow(div(mult(m,l),x),bn(-1)))
   console.log("K is equal to: ",k)
}

pi = div(bn(1),calc)

//Printing the pi

console.log(MathJS.string(pi))

将值添加到 calc 时的行不起作用,并说:

“类型错误:无法将有效数字超过 15 位的数字隐式转换为 BigNumber。使用函数 bignumber(x) 转换为 BigNumber

我认为是 X 值,但我不知道如何修复它。我正在使用库 Math.Js。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)