1.在main.js中引入全局方法,
// 全局方法
import Common from './util/public'
Vue.prototype.Common = Common;
2. 在文件夹util/public.js 写入方法
/*
@method 数字处理:四舍五入、保留两位
@Author ******
@param number 参与运算 必填
*/
format(number){
if(isNaN(number) || number == "")return 0;
let num2 = null,num3 = null,num4= null,num5 = null,newNum = null;
let num1 = number.toString().split(".")[1]; // 小数点后数据
if(num1){
num2 = num1.substring(2,3); // 小数点后第三位;
num3 = num1.substring(0,2); // 小数点后前两位;
}
if(num2 && Number(num2) < 5){
newNum = Math.round(number * 100) / 100;
}else if(num2 && Number(num2) >= 5) {
num4 = Number(num3) + 1;
if(num4 >= 100){
newNum = Number(number.toString().split(".")[0]) + 1
}else if(num4 < 10) {
newNum = number.toString().split(".")[0] + '.0' + (Number(num3) + 1);
}else {
newNum = number.toString().split(".")[0] + '.' + (Number(num3) + 1);
}
}else {
newNum = number
}
return newNum
},
/*
@method 加法
@Author zhangjuan 2020-09-15
@param arrNum 参与运算的数组 必填
*/
accAdd(arrNum){
const arr = arrNum;
const fieldArr = [];
let m, field;
for (let i = 0; i < arr.length; i++) {
try {
field = arr[i].toString().split('.')[1].length;
} catch (e) {
field = 0;
}
fieldArr.push(field)
}
m = Math.pow(10, Math.max(...fieldArr));
let add = 0;
arr.forEach(function (item) {
add = add + item * m
});
let number = this.format(Math.round(add) / m);
return number
},
/*
@method 减法
@Author zhangjuan 2020-09-15
@param num1, num2 参与运算 必填
*/
accSub(num1, num2){
let r1,r2,m,n;
try{
r1 = num1.toString().split(".")[1].length
} catch(e){
r1 =0
}
try{
r2 = num2.toString().split(".")[1].length
} catch(e){
r2 = 0
}
m = Math.pow(10,Math.max(r1,r2));
n = ( r1 >= r2 ) ? r1 : r2;
let number = this.format(( ( num1 * m - num2 * m ) / m ).toFixed(n));
return number;
},
/*
@method 乘法
@Author zhangxin 2021-11-02
@param num1, num2 参与运算 必填
*/
accMul(num1,num2){
let m=0, s1=num1.toString(), s2=num2.toString();
try{
m+=s1.split(".")[1].length;
}catch(e){
}
try{
m+=s2.split(".")[1].length;
}catch(e){
}
let number = this.format(Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m));
return number
},
/*
@method 除法
@Author zhangxin 2021-11-02
@param num1, num2 参与运算 必填
*/
accDiv(num1,num2){
let t1=0,t2=0,r1,r2;
try{
t1=num1.toString().split(".")[1].length
}catch(e){
}
try{
t2=num2.toString().split(".")[1].length
}catch(e){
}
r1 = Number(num1.toString().replace(".",""))
r2 = Number(num2.toString().replace(".",""))
let number = this.format((r1/r2)* Math.pow(10,t2-t1));
return number
},