前端js处理超过16位的数字会出现精度丢失。
在js中number类型有个最大值(安全值),为9007199254740992,是2的53次方。如果超过这个值,那么js会出现不精确的问题。
let test = 3456743246644567634;
console.log(test);
方法1:加引号变字符串
let test = '3456743246644567634';
console.log(test);
方法2:BigInt()
let test = 3456743246644567634;
let num = BigInt(test);
console.log(num);
使用BigInt()方法尾部会出现n,可以在使用String()或者 toString()转换为去掉n的字符串,如下:
let test = 3456743246644567634;
let num = BigInt(test)
console.log(num);
console.log(String(num));
console.log(num.toString());