rittenhop-dev/versions/5.94.2/node_modules/round-to/index.js
2024-09-23 19:40:12 -04:00

35 lines
776 B
JavaScript

'use strict';
function round(method, number, precision) {
if (typeof number !== 'number') {
throw new TypeError('Expected value to be a number');
}
if (precision === Infinity) {
return number;
}
if (!Number.isInteger(precision)) {
throw new TypeError('Expected precision to be an integer');
}
const isRoundingAndNegative = method === 'round' && number < 0;
if (isRoundingAndNegative) {
number = Math.abs(number);
}
const power = 10 ** precision;
let result = Math[method](Number((number * power).toPrecision(15))) / power;
if (isRoundingAndNegative) {
result = -result;
}
return result;
}
module.exports = round.bind(undefined, 'round');
module.exports.up = round.bind(undefined, 'ceil');
module.exports.down = round.bind(undefined, 'floor');