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