優秀的js拓展數學庫math.js,解決精度問題
今天飛哥推薦一個前端在計算上面必定會用到的類庫:mathjs。
電商系統中,訂單、庫存中有數字等加減乘除算術,還有做工業計算的,前端怎么算也不對,我們先看看不對的例子。
JS常見加減乘除算不對的例子
加法算術:0.1+0.2
console.log(0.1+0.2); 結果是:0.30000000000000004
減法算術:1-0.9
console.log(1-0.9); 結果是:0.09999999999999998
乘法算術 4.10*100
console.log(4.10*100); 結果是:409.99999999999994
除法法算術 6.10/0.1
console.log(6.10/0.1); 結果是:60.99999999999999
超過9007199254740992的大數加法
console.log(9007199254740992+1); 結果是9007199254740992
javaScript 浮點數運算結果不對,因浮點數的存儲問題導致計算結果不對,解決方案是引入數學庫math.js,在線上項目中表現很優秀。
math.js 介紹
Math.js是一個用于javaScript和Node.js的擴展數學庫。它具有支持符號計算的靈活表達式解析器,大量內置函數和常量,并提供了集成的解決方案來處理不同的數據類型,例如數字,大數,復數,分數,單位和矩陣,強大且易于使用。
官網:https://mathjs.org/
Github代碼庫:https://github.com/josdejong/mathjs
文檔:https://mathjs.org/docs/index.html
特征
支持數字,大數,復數,分數,單位,字符串,數組和矩陣。
與JavaScript的內置Math庫兼容,Math用法,一樣,門檻低
包含一個靈活的表達式解析器。
進行符號計算。
帶有大量內置函數和常量。
也可以用作命令行應用程序。
在任何JavaScript引擎上運行。
很容易擴展。
開源。
幫助使用教程:
1、傳統使用,引入math.js
?? ??
npm安裝
npm?install?mathjs
2、ES modules
import?{?sqrt?}?from?'mathjs' console.log(sqrt(-4).toString())?//?2i
創建配置
import?{?create,?all?}?from?'mathjs' //?create?a?mathjs?instance?with?configuration const?config?=?{ ??epsilon:?1e-12, ??matrix:?'Matrix', ??number:?'number', ??precision:?64, ??predictable:?false, ??randomSeed:?null } const?math?=?create(all,?config) //?read?the?applied?configuration console.log(math.config()) //?change?the?configuration math.config({ ??number:?'BigNumber' })
3、Node.js
const?{?sqrt?}?=?require('mathjs') console.log(sqrt(-4).toString())?//?2i
math.js 常用數學功能
math.js 大數功能
javascript
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。