1. 程式人生 > 其它 >javascript精度丟失問題,BigNumber.js

javascript精度丟失問題,BigNumber.js

技術標籤:javascriptjs

首先我們來聊一個很常見的前端面試題,

0.1 + 0.2 != 0.3 //true

在專案的開發過程中,一般資料的計算處理都是由後端來完成,但偶爾也可能需要由前端來完成,但是由於JavaScript語言的特性,普通的計算可能會導致出現各種bug。
關於JavaScript的精度問題,詳細的可以看JavaScript 浮點數陷阱及解法
JavaScript精度丟失問題
簡單的說就是在實際計算時,所有的數字都會轉換成二進位制進行計算後,再轉換成十進位制,但是在進行轉換之後會因為很長,而捨去一部分,所以當計算完後轉換成十進位制,就有了精度誤差這個問題。
講了這麼多那咋解決嘞,還是得靠大佬們啊

BigNumber.js,一個用於任意精度計算的js庫,官方地址

npm install bignumber.js --save 
import BigNumber from 'bignumber.js' //引用 

//加法
x = new BigNumber(355)
y = new BigNumber(113)
x.dividedBy(y)                  // '3.14159292035398230088'
x.div(5)                        // '71'
x.div(47, 16)                   // '5'

描述的很詳細