1. 程式人生 > >JS高精度運算 總結 (用於金融行業)

JS高精度運算 總結 (用於金融行業)

數值處理

js高精度運算說明 : js數值計算的擠過精度是有限制的

1.如果是整數運算,在計算結果是16位證書(千萬億規模數字)以內情況下,可以保證精度不丟失,繁殖

如: 12345678901234567*1=12345678901234568

12345678901234567890*1=12345678901234567000

2.如果是浮點型運算,在計算結果是14整2小數(十萬億規模的數字)以內的請下,可以保證精度不丟失;

在計算10位整,6位小數(十億規模的數字以內情況下) 可以保證精度不丟失

如果計算結果超出以上範圍,則需要使用js的四則運算函式操作計算方可保證精度

PS: 需要引入函式庫為 mathcontext.js   bigdecimal.js

特別說明: 運算前,一定不可以讓js對需要參與運算的變數進行隱式的數值轉換,保持字串格式!!!

舉例:

var a1 = new BigDecimal(a);

var a2 = new BigDecimal(b);//a b為字串

var c1 = a1.multiply(b1);

var c2 = a1.divide(b1);

var c3 = a1.add(b1);

var c4 = a1.subtract(b1);