如果我想存储一个非常大的数字然后显示它怎么办。例如200的阶乘。
如何使用JavaScript做到这一点?
我尝试了正常方式,结果为null或无穷大。
function fact(input) {
if(input == 0) {
return 1;
}
return input * fact(input-1);
}
var result = fact(171);
console.log(result);
我以正常方式尝试过,结果为无穷大或为空。 看来JavaScript最多可以生成170个阶乘。
看这张照片。这个计算器似乎可以做到。
答案 0 :(得分:4)
BigInt数值类型将在JavaScript的未来版本中实现,the proposal处于ECMAScript标准化过程的第3阶段,major browsers now支持该类型。
您可以使用BigInt
构造函数或数字文字,只需在数字末尾附加一个n
。
在较旧的环境中,您可以使用a polyfill。
function fact(input) {
if(input == 0n) {
return 1n;
}
return input * fact(input-1n);
}
const result = fact(171n);
console.log(String(result));
答案 1 :(得分:1)
试试这个基于javascript的BigInteger库。有很多选择。但我推荐这个https://github.com/peterolson/BigInteger.js
示例:
var num = bigInt("9187239176928376598273465972639458726934756929837450")
.plus("78634075162394756297465927364597263489756289346592");