UNPKG

@web3r/flowerkit

Version:

Tree-shakable JavaScript and TypeScript utility library for frontend/browser apps: DOM, events, arrays, objects, strings, date, JSON, and network helpers (ESM/CJS, SSR-friendly).

1 lines 1.74 kB
{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["export type TGetRoundedArgs = Parameters<typeof getRounded>;\r\n\r\nexport type TGetRoundedReturn = ReturnType<typeof getRounded>;\r\n\r\n/**\r\n * Rounds a number to specific decimal places\r\n * @param {number} num Source number\r\n * @param {number} [places=2] Decimal places (0..100)\r\n * @returns {number} Rounded number\r\n * @throws {TypeError} getRounded: num must be a valid number\r\n * @throws {RangeError} getRounded: places must be a finite number between 0 and 100\r\n * @example\r\n * // How to round number to 4 decimal places?\r\n * const num = 0.00025;\r\n * const rounded = getRounded(num, 4);\r\n * console.log(rounded); // => 0.0003\r\n */\r\nexport const getRounded = (num: number, places: number = 2): number => {\r\n if (typeof num !== \"number\" || Number.isNaN(num)) {\r\n throw new TypeError(\"getRounded: num must be a valid number\");\r\n }\r\n if (typeof places !== \"number\" || !Number.isFinite(places) || places < 0 || places > 100) {\r\n throw new RangeError(\"getRounded: places must be a finite number between 0 and 100\");\r\n }\r\n\r\n const shift = `e+${places}`;\r\n const unshift = `e-${places}`;\r\n return Number((Math.round(Number(String(num) + shift)) + unshift));\r\n};\r\n"],"names":["getRounded","num","places","Number","isNaN","TypeError","isFinite","RangeError","shift","unshift","Math","round","String"],"mappings":";;;;;;;;;;;;;AAiBO,MAAMA,WAAaA,CAACC,IAAaC,OAAiB,KACvD,UAAWD,MAAQ,UAAYE,OAAOC,MAAMH,KAC1C,MAAM,IAAII,UAAU,0CAEtB,UAAWH,SAAW,WAAaC,OAAOG,SAASJ,SAAWA,OAAS,GAAKA,OAAS,IACnF,MAAM,IAAIK,WAAW,gEAGvB,MAAMC,MAAQ,KAAKN,SACnB,MAAMO,QAAU,KAAKP,SACrB,OAAOC,OAAQO,KAAKC,MAAMR,OAAOS,OAAOX,KAAOO,QAAUC"}