js 處理四則運算失去精度問題

又在寫bug發表於2018-02-07

大家知道 在js 中,在計算精度,特別是浮點數計算。舉個栗子

 js 處理四則運算失去精度問題
?

然後我尋求各種解決辦法,其中用了lodash,ramda提供的四則運算。結果發現並沒有完全的解決這個問題, 怎麼辦呢?

然後我各種百度借鑑大神的解決辦法, 一波三折又發現一個問題。大神在封裝四則運算的時候, 用了toFixed 方法。然而這個方法也有坑,舉個栗子。

js 處理四則運算失去精度問題
栗子2

所以通過上圖我們發現 2.55 這個變態數字取以為的時候和其他不一樣。

經過的不斷的研究和測試最終 封裝了五個方法下面貼原始碼:

js 處理四則運算失去精度問題
toFixed方法



js 處理四則運算失去精度問題
加法


js 處理四則運算失去精度問題
減法


js 處理四則運算失去精度問題
乘法


js 處理四則運算失去精度問題
除法

如果使用npm 的同學可以這樣

npm i fourth_calculate --save

import Calculate from fourth_calculat

呼叫 Calculate.toFixed、Calculate.Add() 等等

-- 如果覺得複雜的同學 請移步 下面的連結:

程式碼 github地址 :https://github.com/yuhaiyang1/float_calculate

其中這幾個方法都寫了單元測試 有興趣的同學可以看下,也可以關注我,我會持續把我遇到的坑點分享給大家的。
補充: 最近發現有個庫 big.js 可以避免這個問題 順便安利一下



相關文章