js方法-加減乘除

js日常開發的方法


數字運算

// 加
function accAdd(a1, a2) {
let arg1 = Number(a1), arg2 = Number(a2);
let r1, r2, m, c;
try { r1 = (arg1-0).toString().split(’.’)[1].length; } catch (e) { r1 = 0; }
try { r2 = (arg2-0).toString().split(’.’)[1].length; } catch (e) { r2 = 0; }
c = Math.abs(r1 - r2);
m = Math.pow(10, Math.max(r1, r2));
if (c > 0) {
let cm = Math.pow(10, c);
if (r1 > r2) {
arg1 = Number((arg1 - 0).toString().replace(’.’, ‘’));
arg2 = Number((arg2 - 0).toString().replace(’.’, ‘’)) * cm;
} else {
arg1 = Number((arg1 - 0).toString().replace(’.’, ‘’)) * cm;
arg2 = Number((arg2 - 0).toString().replace(’.’, ‘’));
}
} else {
arg1 = Number((arg1 - 0).toString().replace(’.’, ‘’));
arg2 = Number((arg2 - 0).toString().replace(’.’, ‘’));
}
return Number((arg1 + arg2) / m);
}
// 減
function accSub(arg1, arg2) {
let r1, r2, m, n;
try { r1 = (arg1-0).toString().split(’.’)[1].length; } catch (e) { r1 = 0; }
try { r2 = (arg2-0).toString().split(’.’)[1].length; } catch (e) { r2 = 0; }
m = Math.pow(10, Math.max(r1, r2));
// 動態控制精度長度
n = (r1 >= r2) ? r1 : r2;
return Number(((arg1 * m - arg2 * m) / m).toFixed(n));
}
// 乘
function accMul(arg1, arg2) {
let m = 0, s1 = (arg1-0).toString(), s2 = (arg2-0).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) {
let t1 = 0, t2 = 0, r1, r2;
try { t1 = (arg1-0).toString().split(’.’)[1].length; } catch (e) { }
try { t2 = (arg2-0).toString().split(’.’)[1].length; } catch (e) { }
r1 = Number((arg1-0).toString().replace(’.’, ‘’));
r2 = Number((arg2-0).toString().replace(’.’, ‘’));
return Number((r1 / r2) * Math.pow(10, t2 - t1));
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章