更新代码
This commit is contained in:
89
public/assets/home/js/operation.js
Normal file
89
public/assets/home/js/operation.js
Normal file
@@ -0,0 +1,89 @@
|
||||
// 运算类
|
||||
|
||||
// 整合运算函数
|
||||
function getMax(operation, arg1, arg2){
|
||||
var res = '';
|
||||
|
||||
switch(operation)
|
||||
{
|
||||
case '+':
|
||||
res = accAdd(arg1, arg2);
|
||||
break;
|
||||
case '-':
|
||||
res = accSubtr(arg1, arg2);
|
||||
break;
|
||||
case '*':
|
||||
res = accMul(arg1, arg2);
|
||||
break;
|
||||
case '/':
|
||||
res = accDiv(arg1, arg2);
|
||||
break;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
function accAdd(arg1, arg2) {
|
||||
var r1, r2, m;
|
||||
try {
|
||||
r1 = arg1.toString().split(".")[1].length
|
||||
} catch (e) {
|
||||
r1 = 0
|
||||
}
|
||||
try {
|
||||
r2 = arg2.toString().split(".")[1].length
|
||||
} catch (e) {
|
||||
r2 = 0
|
||||
}
|
||||
m = Math.pow(10, Math.max(r1, r2));
|
||||
return (arg1 * m + arg2 * m) / m;
|
||||
}
|
||||
|
||||
function accSubtr(arg1, arg2) {
|
||||
var r1, r2, m, n;
|
||||
try {
|
||||
r1 = arg1.toString().split(".")[1].length
|
||||
} catch (e) {
|
||||
r1 = 0
|
||||
}
|
||||
try {
|
||||
r2 = arg2.toString().split(".")[1].length
|
||||
} catch (e) {
|
||||
r2 = 0
|
||||
}
|
||||
m = Math.pow(10, Math.max(r1, r2));
|
||||
//动态控制精度长度
|
||||
n = (r1 >= r2) ? r1 : r2;
|
||||
return ((arg1 * m - arg2 * m) / m).toFixed(n);
|
||||
}
|
||||
|
||||
function accMul(arg1, arg2) {
|
||||
var m = 0,
|
||||
s1 = arg1.toString(),
|
||||
s2 = arg2.toString();
|
||||
try {
|
||||
m += s1.split(".")[1].length;
|
||||
} catch (e) {}
|
||||
try {
|
||||
m += s2.split(".")[1].length;
|
||||
} catch (e) {}
|
||||
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
|
||||
}
|
||||
|
||||
function accDiv(arg1, arg2) {
|
||||
var t1 = 0,
|
||||
t2 = 0,
|
||||
r1, r2;
|
||||
try {
|
||||
t1 = arg1.toString().split(".")[1].length;
|
||||
} catch (e) {}
|
||||
try {
|
||||
t2 = arg2.toString().split(".")[1].length;
|
||||
} catch (e) {}
|
||||
with(Math) {
|
||||
r1 = Number(arg1.toString().replace(".", ""));
|
||||
r2 = Number(arg2.toString().replace(".", ""));
|
||||
return (r1 / r2) * pow(10, t2 - t1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user