js的計(jì)算有精度問題俄讹,在業(yè)務(wù)處理中總是會(huì)出現(xiàn)莫名其妙的數(shù)據(jù)小染,在這里我們使用decimal.js解決計(jì)算精度問題。
然而decimal.js直接使用如果多個(gè)值相加(或相減)會(huì)十分的麻煩,所以針對全是加/減/乘/除某一項(xiàng)的操作做了簡單的封裝偏友。
1.npm安裝decimal.js
$ npm install --save decimal.js
or
$ npm add decimal.js
2.在common文件夾中創(chuàng)建一個(gè)js的文件
我喜歡放在common中,大家隨意对供。位他。。
3.在js文件中引入decimal.js并開始簡單的封裝
import { Decimal } from "decimal.js";
// args第一位為被操作數(shù)據(jù)
//加法
function add(...args) {
let result = new Decimal(args[0]);
for (let i = 1; i < args.length; i++) {
result = result.add(new Decimal(args[i]));
}
return result.toNumber();
}
//減法
function sub(...args) {
let result = new Decimal(args[0]);
for (let i = 1; i < args.length; i++) {
result = result.sub(new Decimal(args[i]));
}
return result.toNumber();
}
//乘法
function mul(...args) {
let result = new Decimal(args[0]);
for (let i = 1; i < args.length; i++) {
result = result.mul(new Decimal(args[i]));
}
return result.toNumber();
}
//除法
function div(...args) {
let result = new Decimal(args[0]);
for (let i = 1; i < args.length; i++) {
result = result.div(new Decimal(args[i]));
}
return result.toNumber();
}
export default {
add,
sub,
mul,
div
};
4.使用
(1)全局使用产场,在main.js引入封裝的js文件并掛到vue上
import decimal from "./common/decimal";
Vue.prototype.decimal = decimal;
其他頁面使用只需要
let a = this.decimal.add(1,2,3,4);
console.log(a); //10
(2)頁面單獨(dú)引入使用
import decimal from "./common/decimal";
let a = decimal.add(1,2,3,4);
console.log(a); //10
大概就這樣了鹅髓,這只是簡單的進(jìn)行封裝,如果有復(fù)雜的使用京景,如a-b+c*d/e這種窿冯,大家可以根據(jù)業(yè)務(wù)進(jìn)行封裝。
以上确徙,如有啥問題或更好的想法請指教醒串。^ ^