vue中如何使用math.js
vue使用math.js
math.js可以解決前端金額類計(jì)算精度問題
安裝math.js
npm install mathjs
math.js配置
新建math.js文件內(nèi)容如下
const $math = require('mathjs') export const math = { ? add () { ? ? return comp('add', arguments) ? }, ? subtract () { ? ? return comp('subtract', arguments) ? }, ? multiply () { ? ? return comp('multiply', arguments) ? }, ? divide () { ? ? return comp('divide', arguments) ? } } function comp (_func, args) { ? let t = $math.chain($math.bignumber(args[0])) ? for (let i = 1; i < args.length; i++) { ? ? t = t[_func]($math.bignumber(args[i])) ? } ? // 防止超過6位使用科學(xué)計(jì)數(shù)法 ? return parseFloat(t.done()) }
建議存放在utils文件夾下
引入math.js
import { math } from '@/utils/math.js'
math.js使用
math.add(a+b)//加 math.subtract(a-b)//減 math.multiply(a*b)//乘 math.divide(a/b)//除
如需其他計(jì)算方法可點(diǎn)擊標(biāo)題math.js進(jìn)入官網(wǎng)查看語法并添加到math.js文件中
vue使用mathjs解決前端計(jì)算精度不足問題
在前端開發(fā)過程中,你會發(fā)現(xiàn)0.1 + 0.2 != 0.3 如下圖
他居然等于0.30000000000000004…
為什么會這樣大家可以百度,涉及到10進(jìn)制和2進(jìn)制的轉(zhuǎn)換問題,我們暫不討論,我們先來解決這個問題。
現(xiàn)在有現(xiàn)成的庫給我們調(diào)用 math.js
首先先安裝依賴
npm install mathjs --save
然后再需要計(jì)算的頁面調(diào)用
import * as math from 'mathjs'
下面記錄簡單的加減乘除方法,其余更牛逼的數(shù)學(xué)算法大家可以自行翻文檔研究
加法
// 原本 console.log(0.1 + 0.2) // 0.30000000000000004 // 用math.js之后 const addNumber = math.format( math.add( math.bignumber(0.1),math.bignumber(0.2) ) ) console.log(addNumber) // 0.3
減法
// 原本 console.log(1 - 0.9) // 0.09999999999999998 // 用math.js之后 const subtractNumber = math.format( math.subtract( math.bignumber(1), math.bignumber(0.9) ) ) consol(subtractNumber) // 0.1
乘法
// 原本 console.log(10 * 1.2 * 0.3) // 3.5999999999999996 // 用math.js之后 const multiplyMumber = math.format( math.multiply( math.bignumber(10), math.bignumber(1.2), math.bignumber(0.3) ) ) console.log(multiplyMumber) // 3.6
除法
// 原本 console.log(1.2 / 3) // 0.39999999999999997 // 用math.js之后 const divideNumber = math.format( math.divide( math.bignumber(1.2), math.bignumber(3) ) ) console.log(divideNumber) // 0.4
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue在table表中懸浮顯示數(shù)據(jù)及右鍵菜單
這篇文章主要為大家詳細(xì)介紹了vue在table表中懸浮顯示數(shù)據(jù)及右鍵菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04vue如何自動化打包測試環(huán)境和正式環(huán)境的dist/test文件
這篇文章主要介紹了vue如何自動化打包測試環(huán)境和正式環(huán)境的dist/test文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06Vue Router動態(tài)路由使用方法總結(jié)
這篇文章主要介紹了Vue Router動態(tài)路由使用方法總結(jié),需要的朋友可以參考下2023-10-10vue完成項(xiàng)目后,打包成靜態(tài)文件的方法
今天小編就為大家分享一篇vue完成項(xiàng)目后,打包成靜態(tài)文件的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09vue實(shí)現(xiàn)省市區(qū)的級聯(lián)選擇
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)省市區(qū)的級聯(lián)選擇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10