util-helpers
Version:
29 lines (26 loc) • 923 B
JavaScript
import { isNaN } from 'ut2';
import { transformEffectiveNumber, float2Fixed, digitLength, checkBoundary } from './utils/math.util.js';
function times() {
var nums = [];
for (var _i = 0; _i < arguments.length; _i++) {
nums[_i] = arguments[_i];
}
var num1 = nums[0];
var num2 = nums[1] === void 0 ? 1 : nums[1];
var rest = nums.slice(2);
if (rest.length > 0) {
return times.apply(void 0, [times(num1, num2)].concat(rest));
}
num1 = transformEffectiveNumber(num1);
num2 = transformEffectiveNumber(num2);
if (isNaN(num1) || isNaN(num2)) {
return Number.NaN;
}
var num1Changed = float2Fixed(num1);
var num2Changed = float2Fixed(num2);
var baseNum = digitLength(num1) + digitLength(num2);
var leftValue = num1Changed * num2Changed;
checkBoundary(leftValue);
return leftValue / Math.pow(10, baseNum);
}
export { times as default };