- 数字必须要在Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER之间
- 将两个大数字转成string
- 循环依次将两个数字相加
注意:要处理在相加过程中大于10的数字
const bigNumCount = (a = 0, b = 0) => {
a = String(a)
b = String(b)
let len = Math.max(a.length, b.length),
temp = [],
cur = 0
a = a.padStart(len, '0')
b = b.padStart(len, '0')
for (let i = len - 1; i >= 0; i--) {
let count = Number(a[i]) + Number(b[i]) + cur
cur = Math.floor(count / 10)
count = count % 10
temp.unshift(count)
}
if (cur > 0) {
temp.unshift(cur)
}
return temp.join('')
}
// Number.MAX_SAFE_INTEGER // 9007199254740991
// Number.MIN_SAFE_INTEGER // -9007199254740991
console.log(bigNumCount(1584515231, 154853415212)) // 156437930443 string