LendAndRegret/node_modules/es-toolkit/dist/compat/_internal/decimalAdjust.mjs
2026-05-02 17:27:43 +08:00

20 lines
721 B
JavaScript

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) {
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));
}
export { decimalAdjust };