Skip to content

multiply

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

配置项

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

返回值

类型描述
number运算结果

示例

console.log(multiply(19.9, 100)) // 1990
console.log(multiply( 0.8, 3)) // 2.4
console.log(multiply( 35.41, 100)) // 3541

源码

js
export function multiply(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 * maxTimes);
    const resultDecimalLength = getDecimalLength(res);

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

    return res;
}