【问题标题】:Adding two big numbers in javascript [duplicate]在javascript中添加两个大数字[重复]
【发布时间】:2019-10-15 15:52:49
【问题描述】:

我一直在尝试使用 javascript 添加以下数字; 76561197960265728 + 912447736

遗憾的是,由于 javascript 中的四舍五入,它不会得到正确的数字,我需要将数字作为字符串。

我尝试使用 substr 删除最后几位数字,然后将两个数字相加,然后将两个字符串放在一起,遗憾的是,如果数字的第一个是 1,这将不起作用。

function steamid(tradelink){
    var numbers = parseInt(tradelink.split('?partner=')[1].split('&')[0]),
            base = '76561197960265728';

    var number = parseInt(base.substr(-(numbers.toString().length + 1))) + numbers;
            steamid = //put back together
}

steamid('https://steamcommunity.com/tradeoffer/new/?partner=912447736&token=qJD0Oui2');

预期: 76561198872713464

【问题讨论】:

  • 搜索 node.js 大整数库。

标签: javascript node.js


【解决方案1】:

欢迎使用 StackOverflow。

对于这么大的整数,你应该使用BigInt,它会正确地对大于2^53的整数进行操作(这是普通Number在JS上可以支持的最大尺寸

const sum = BigInt(76561197960265728) + BigInt(912447736);

console.log(sum.toString());

Edit 2020:这个API还是not widely supported by some browsers,所以你可能需要一个polyfill,请检查this library

【讨论】:

  • 哇,这让生活变得如此轻松,非常感谢!我会调查一下,我认为这是不可能的,因为 javascript 处理大量数字的方式。
  • 根本没有得到很好的支持 - 几乎完全是 Chrome(最新的 Safari 出现错误)
  • 你总是可以使用 polyfill:npmjs.com/package/big-integer
猜你喜欢
  • 1970-01-01
  • 2017-06-16
  • 2023-03-03
  • 2016-06-12
  • 2016-10-16
  • 1970-01-01
  • 2014-07-06
  • 2019-09-11
相关资源
最近更新 更多