| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /* eslint-disable no-restricted-properties */
- export function accAdd(arg1, arg2) {
- let r1;
- let r2;
- try {
- r1 = arg1.toFixed(2).split('.')[1].length;
- } catch (e) {
- r1 = 0;
- }
- try {
- r2 = arg2.toFixed(2).split('.')[1].length;
- } catch (e) {
- r2 = 0;
- }
- const m = Math.pow(10, Math.max(r1, r2));
- return (arg1 * m + arg2 * m) / m;
- }
- // 减法函数
- export function Subtr(arg1, arg2) {
- let r1;
- let r2;
- try {
- r1 = arg1.toFixed(2).split('.')[1].length;
- } catch (e) {
- r1 = 0;
- }
- try {
- r2 = arg2.toFixed(2).split('.')[1].length;
- } catch (e) {
- r2 = 0;
- }
- const m = Math.pow(10, Math.max(r1, r2)); // 动态控制精度长度
- const n = r1 >= r2 ? r1 : r2;
- return parseFloat(((arg1 * m - arg2 * m) / m).toFixed(n));
- }
- // 乘法函数
- export function accMul(arg1, arg2) {
- let m = 0;
- const s1 = arg1.toFixed(2);
- const s2 = arg2.toFixed(2);
- m += s1.split('.')[1].length;
- m += s2.split('.')[1].length;
- return (
- (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) /
- Math.pow(10, m)
- );
- }
- // 除法函数
- export function accDiv(arg1, arg2) {
- let t1 = 0;
- let t2 = 0;
- t1 = arg1.toFixed(2).split('.')[1].length;
- t2 = arg2.toFixed(2).split('.')[1].length;
- const r1 = Number(arg1.toFixed(2).replace('.', ''));
- const r2 = Number(arg2.toFixed(2).replace('.', ''));
- return (r1 / r2) * Math.pow(10, t2 - t1);
- }
|