[Math.js]通過Math.js彌補JavaScript運算精度問題
阿新 • • 發佈:2018-12-13
①首先介紹JavaScript運算精度丟失的背景
計算機通過二進位制來儲存並處理數字,不能精確表示浮點數,但是JavaScript沒有封裝的類來處理浮點數,直接計算會使浮點數丟失計算精度。
例子一:
0.1=0.0001 1001 1001 1001 1001 1001 1001 1010(1001迴圈下去)
0.2=0.0011 0011 0011 0011 0011 0011 0011 0011(0011迴圈下去)
0.1和0.2相加的結果用二進位制計算出來是0.0100 1100 1100 1100 1100 1100 1100 1101(轉換成十進位制為0.30000000004)
例子二:
ToFixed函式不能進行四捨五入
1.335.toFixed(2); ---返回的結果是1.33
②使用Math.js彌補JavaScript運算精度的問題
通過npm安裝math.js
npm install mathjs
在competent.ts中引用
// load math.js
import * as math from 'mathjs'