Skip to content

subtract

减法运算, 其中调用getDecimalLength方法

配置项

参数类型是否必选默认值参数描述
number1number-操作数1
number2number-操作数2
maxTimesnumber-可选的对阶倍数

返回值

类型描述
number运算结果

示例

console.log(subtract(1.5, 1.2)) // 0.3
console.log(subtract(0.3, 0.2)) // 0.1

源码

js
export function subtract(number1, number2, maxTimes) {
    // const calculateMaxTimes = (number1, number2, maxTimes) => {
    //     const max = Math.max(...getDecimalLength([number1, number2]));
    //     return maxTimes || Math.pow(10, max);
    // };
    maxTimes = calculateMaxTimes(number1, number2, maxTimes);
    const res = (number1 * maxTimes - number2 * maxTimes) / maxTimes;
    const resultDecimalLength = getDecimalLength(res);

    // 如果结果的小数位数超过输入的最大小数位数,递归调用
    if (resultDecimalLength > Math.max(...getDecimalLength([number1, number2]))) {
        return subtract(number1, number2, maxTimes * 10);
    }

    return res;
}