javascript中的数字非常大

JEJ*_*oll 9 javascript types integer numbers biginteger

我正在研究Project Euler问题(目前问题13).

对于这个问题,我必须找到100个数字之和的前10位数字,其大小与此相似:

91,942,213,363,574,161,572,522,430,563,301,811,072,406,154,908,250
Run Code Online (Sandbox Code Playgroud)

我想我可以使用像Java的BigInteger这样的东西,但我开始用JavaScript解决问题(我试图提高我的js工作能力),我想继续使用它,甚至解决这个问题.

如果可能的话,我想坚持使用纯JS.

bhs*_*cer 13

您将需要一个基于javascript的BigInteger库.有很多可供选择.这是一个https://github.com/peterolson/BigInteger.js

你可以像这样使用它

var n = bigInt("91942213363574161572522430563301811072406154908250")
    .plus("91942213363574161572522430563301811072406154908250");
Run Code Online (Sandbox Code Playgroud)


Qi *_*Fan 9

Javascript最近获得了一种新的原始数据类型BigInthttps://github.com/tc39/proposal-bigint

现在只有Chrome浏览器发布了此功能,而其他浏览器仍在实现该功能。 https://developers.google.com/web/updates/2018/05/bigint

基本上可以使用以下两种文字进行声明

var a = 1n;

要么

var b = BigInt('22222222222222222222222222222222');

数学运算符不会在BigInt和Number之间进行自动转换,因此 1 + 1n 会引发错误。