1. 程式人生 > >JS parseInt()和Number的精度丟失問題

JS parseInt()和Number的精度丟失問題

JS整形parseInt()和Number的精度問題

1.js 所能表示的最大整數

Math.pow(2, 53)
//2的53次方
結果:9007199254740992
 console.log(Math.pow(2, 53));
 console.log(Math.pow(2, 53)+1);
結果:9007199254740992
    9007199254740992

Number的精度共十六位,超出這個說+1也會造成精度不準確


Math.pow(2, 53)+1 ===9007199254740992

同理parseInt()將字串轉換成整形也不能超出這個數

 var str = '9007199254740993'
; console.log(parseInt(str)); 結果:9007199254740992

所以在前後臺互動中將超過這個資料的值轉為字串處理