javascript精度丟失問題,BigNumber.js
阿新 • • 發佈:2021-01-06
技術標籤:javascriptjs
首先我們來聊一個很常見的前端面試題,
0.1 + 0.2 != 0.3 //true
在專案的開發過程中,一般資料的計算處理都是由後端來完成,但偶爾也可能需要由前端來完成,但是由於JavaScript語言的特性,普通的計算可能會導致出現各種bug。
關於JavaScript的精度問題,詳細的可以看JavaScript 浮點數陷阱及解法
JavaScript精度丟失問題
簡單的說就是在實際計算時,所有的數字都會轉換成二進位制進行計算後,再轉換成十進位制,但是在進行轉換之後會因為很長,而捨去一部分,所以當計算完後轉換成十進位制,就有了精度誤差這個問題。
講了這麼多那咋解決嘞,還是得靠大佬們啊
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'