UNPKG

@technobuddha/library

Version:
29 lines 2.09 kB
import { constructNumber } from "./construct-number.js"; import { deconstructNumber } from "./deconstruct-number.js"; /** * Returns the nearest integer to the given number, with optional precision adjustments. * @param input - The number to round. * @param options - Optional configuration object. * @returns The nearest integer to the adjusted input. * @example * ```typescript * round(2.3); // 2 * round(2.7); // 3 * round(-2.5); // -2 * round(2.345, { precision: 2 }); // 2.35 * round(-2.345, { precision: 2 }); // -2.35 * ``` * @group Math * @category Operations */ export function round(input, { precision = 0 } = {}) { if (Number.isNaN(input) || !Number.isFinite(input)) { return input; } let { sign, mantissa, exponent } = deconstructNumber(input); exponent += precision; ({ sign, mantissa, exponent } = deconstructNumber(Math.round(constructNumber({ sign, mantissa, exponent })))); exponent -= precision; return constructNumber({ sign, mantissa, exponent }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcm91bmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBWTVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsS0FBYSxFQUFFLEVBQUUsU0FBUyxHQUFHLENBQUMsS0FBbUIsRUFBRTtJQUN2RSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsUUFBUSxJQUFJLFNBQVMsQ0FBQztJQUN0QixDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxpQkFBaUIsQ0FDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FDMUQsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxJQUFJLFNBQVMsQ0FBQztJQUV0QixPQUFPLGVBQWUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUN2RCxDQUFDIn0=