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)
Javascript最近获得了一种新的原始数据类型BigInt
。
https://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
会引发错误。