js字符串转数字长度限制|超过长度有误差

正整数、负整数超过15、16位开始出现偏差

var numLen16 = '999999999666666'
numLen16.length // 16  长度16位 正整数
+numLen16 // '999999999666666' 没有误差

var numLen17 = '9999999999555557'
numLen17.length // 17  长度17位 正整数
+numLen16 // '9999999999555556' 从第17位开始出现误差

//json 化时的问题
var json = JSON.stringify({a:999999999955555777,b:true})
json // "{"a":999999999955555800,"b":true}" 也会出现误差

 

小数超过18位左右,小数部分超过位数会被丢掉

+'9555555555555.34243535'  // 9555555555555.342

 

posted @ 2020-06-11 13:04  刘金宇  阅读(3763)  评论(0编辑  收藏  举报