我一直在尝试使用 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
对于使用如此大的整数进行运算,您应该使用BigInt https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt,它将正确地处理大于 2ˆ53(这是正常情况下的最大尺寸)的整数Number
可以支持JS
const sum = BigInt(76561197960265728) + BigInt(912447736);
console.log(sum.toString());
2020年编辑:这个API仍然某些浏览器并未广泛支持 https://caniuse.com/#search=bigint,所以你可能需要一个polyfill,请检查这个图书馆 https://www.npmjs.com/package/big-integer
编辑2023这个API现在是除 Internet Explorer 之外的几乎所有内容均受支持 https://caniuse.com/bigint,因此您可以安全地使用它而无需填充,除非您有严格的旧版浏览器支持要求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)