记录一段js计算加减的代码

110 阅读1分钟
// 为了保证小数相加减出现精度溢出的问题
calcPlus(num1, num2) {
        let baseNum, baseNum1, baseNum2;
        try {
                baseNum1 = num1.toString().split('.')[1].length;
        } catch (e) {
                baseNum1 = 0;
        }
        try {
                baseNum2 = num2.toString().split('.')[1].length;
        } catch (e) {
                baseNum2 = 0;
        }
        baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
        let precision = baseNum1 >= baseNum2 ? baseNum1 : baseNum2;
        //精度
        return ((num1 * baseNum + num2 * baseNum) / baseNum).toFixed(precision);
},
// 为了保证小数相加减出现精度溢出的问题
calcMinus(num1, num2) {
        let baseNum, baseNum1, baseNum2;
        try {
                baseNum1 = num1.toString().split('.')[1].length;
        } catch (e) {
                baseNum1 = 0;
        }
        try {
                baseNum2 = num2.toString().split('.')[1].length;
        } catch (e) {
                baseNum2 = 0;
        }
        baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
        let precision = baseNum1 >= baseNum2 ? baseNum1 : baseNum2;
        return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision);
},