首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript中的极大数字

javascript中的极大数字
EN

Stack Overflow用户
提问于 2015-06-06 10:21:31
回答 5查看 38.7K关注 0票数 13

我正在研究Project Euler problems (目前是question 13)。

对于这个问题,我必须找到100个数字总和的前10位,所有数字的大小都类似于:

代码语言:javascript
复制
91,942,213,363,574,161,572,522,430,563,301,811,072,406,154,908,250

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

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-06-06 10:24:44

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

您可以像这样使用它

代码语言:javascript
复制
var n = bigInt("91942213363574161572522430563301811072406154908250")
    .plus("91942213363574161572522430563301811072406154908250");
票数 16
EN

Stack Overflow用户

发布于 2018-09-12 04:02:49

Javascript最近获得了一种新的原始数据类型BigInt (截至2020年1月的第4阶段提案)。https://github.com/tc39/proposal-bigint

Chrome,火狐和一些其他浏览器已经开始在新版本(check compatibility here)中支持它,而其他浏览器仍在实现它。

https://developers.google.com/web/updates/2018/05/bigint

基本上可以使用下面的文字来声明它

var a = 1n;

var b = BigInt('22222222222222222222222222222222');

数学运算符不会在BigInt和Number之间进行自动转换,因此

代码语言:javascript
复制
1 + 1n

将抛出错误。

票数 15
EN

Stack Overflow用户

发布于 2015-06-06 10:28:06

您可以随时将sum转换为string,取出.并获取结果-如下所示:

代码语言:javascript
复制
var sum = 2384762348723648237462348;
sum = sum.toString(); // "2.3847623487236483e+24"

// Rip out the "."
sum = sum.substr(0, 1) + sum.substr(2);

// Grab the first 10 characters
var firstTen = sum.substr(0, 10);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30678303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档