js超大数计算

342 阅读1分钟

案例

如何计算: 9007199254740991+6

直接计算的结果

9007199254740991+6 = 9007199254740996 // 明显不对

方案一: 使用第三方库

方案二: 使用数据类型bigInt

9007199254740991n + 6n = 9007199254740997n

方案三:

// 拆分成两段字符串,计算完再拼接回去
const part1 = "9007199254740";
const part2 = Number("991") + 6;
const res = part1 + part2;

方案四:

// 转换成数组
[9,0,0,7,1,9,9,2,5,4,7,4,0,9,9,1] 
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6]
// 个位加个位十位加十位
[9,0,0,7,1,9,9,2,5,4,7,4,0,9,9,7]