JavaScript對數值有范圍的限制,限制如下:
如果想要對一個超大的整數(> Number.MAX_SAFE_INTEGER)進行加法運算,但是又想輸出一般形式,那么使用 + 是無法達到的,一旦數字超過 Number.MAX_SAFE_INTEGER 數字會被立即轉換為科學計數法,并且數字精度相比以前將會有誤差。
實現一個算法進行大數的相加:
其主要的思路如下:
首先用字符串的方式來保存大數,這樣數字在數學表示上就不會發生變化
初始化res,temp來保存中間的計算結果,并將兩個字符串轉化為數組,以便進行每一位的加法運算
將兩個數組的對應的位進行相加,兩個數相加的結果可能大于10,所以可能要僅為,對10進行取余操作,將結果保存在當前位
判斷當前位是否大于9,也就是是否會進位,若是則將temp賦值為true,因為在加法運算中,true會自動隱式轉化為1,以便于下一次相加
重復上述操作,直至計算結束