1. 程式人生 > >JavaScript 大整數相加後精度 如何解決

JavaScript 大整數相加後精度 如何解決

JS的資料精度問題,當數值範圍超過限制,即會轉換為科學計數法,資料精度就會出現誤差

演算法:
function bigNumberAdd(a,b) {
var res = '', c = 0;//進位值,初始c值為0
a = a.split('');//將資料拆分為陣列
b = b.split('');//同上
while (a.length || b.length || c) {//遍歷資料
c += ~~a.pop() + ~~b.pop();//進位值c
res = c % 10 + res;//依次相加
c = c > 9;//若c大於9,c為true,下次迴圈中true轉換為1,即有進位
    }
return res.replace(/^0+/, '');//返回值
}

以上方法即可正確的實現大資料相加
bigNumberAdd('12478945645654','489789411231231523');//呼叫
注意:引數需傳遞字串型別