在javascript中添加两个大数字

Viz*_*per -1 javascript node.js

我一直在尝试使用 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');
Run Code Online (Sandbox Code Playgroud)

预期的: 76561198872713464

Ren*_*uza 9

对于如此大的整数进行操作,您应该使用BigInt,它将正确地对大于 2\xcb\x8653 (这是NumberJS 上正常可以支持的最大大小)的整数进行操作

\n

\r\n
\r\n
const sum = BigInt(76561197960265728) + BigInt(912447736);\n\nconsole.log(sum.toString());
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

2020年编辑:这个API仍然没有被一些浏览器广泛支持,所以你可能需要一个polyfill,请检查这个库

\n

编辑 2023现在,除了 Internet Explorer 之外,几乎所有内容都支持此 API ,因此您可以安全地使用它,而无需使用 Polyfill,除非您有严格的旧版浏览器支持要求。

\n