UNPKG

es-toolkit

Version:

A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.

17 lines (16 loc) 741 B
//#region src/compat/_internal/decimalAdjust.ts function decimalAdjust(type, number, precision = 0) { number = Number(number); if (Object.is(number, -0)) number = "-0"; precision = Math.min(Number.parseInt(precision, 10), 292); if (precision && Number.isFinite(Number(number))) { const [magnitude, exponent = 0] = number.toString().split("e"); let adjustedValue = Math[type](Number(`${magnitude}e${Number(exponent) + precision}`)); if (Object.is(adjustedValue, -0)) adjustedValue = "-0"; const [newMagnitude, newExponent = 0] = adjustedValue.toString().split("e"); return Number(`${newMagnitude}e${Number(newExponent) - precision}`); } return Math[type](Number(number)); } //#endregion exports.decimalAdjust = decimalAdjust;