@modern-kit/utils
Version:
1 lines • 1.99 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/formatter/formatNumberTruncate/index.ts"],"sourcesContent":["type TruncationUnit =\n | 1\n | 10\n | 100\n | 1_000\n | 10_000\n | 100_000\n | 1_000_000\n | 10_000_000\n | 100_000_000\n | 1_000_000_000\n | 10_000_000_000\n | 100_000_000_000\n | 1_000_000_000_000;\n\n/**\n * @description 주어진 `숫자`를 주어진 `절삭 단위(1을 포함한 10의 제곱수(10/100/1000/...))`로 절삭하여 반환하는 함수입니다.\n * 소수점이 있을 경우 소수점 자리수는 자동으로 절삭됩니다.\n *\n * @param {number} value - 나눌 숫자\n * @param {TruncationUnit} truncationUnit - 10의 제곱수 단위로 절삭할 숫자\n * @returns {number} 주어진 단위로 절삭된 숫자\n *\n * @example\n * formatNumberTruncate(1234567, 1000);\n * formatNumberTruncate(1234567.1234, 1000);\n * // 1234000\n *\n * @example\n * formatNumberTruncate(-1234567, 1000);\n * formatNumberTruncate(-1234567.1234, 1000);\n * // -1234000\n */\nexport function formatNumberTruncate(\n value: number,\n truncationUnit: TruncationUnit\n): number {\n const isInvalidTruncationUnit =\n truncationUnit !== 1 &&\n (!Number.isInteger(truncationUnit) || truncationUnit % 10 !== 0);\n\n if (isInvalidTruncationUnit) {\n throw new Error('truncationUnit은 1을 포함한 10의 제곱수만 허용됩니다.');\n }\n\n if (value < 0) {\n return Math.ceil(value / truncationUnit) * truncationUnit;\n }\n return Math.floor(value / truncationUnit) * truncationUnit;\n}\n"],"names":[],"mappings":"AAiCO,SAAS,oBAAA,CACd,OACA,cAAA,EACQ;AACR,EAAA,MAAM,uBAAA,GACJ,mBAAmB,CAAA,KAClB,CAAC,OAAO,SAAA,CAAU,cAAc,CAAA,IAAK,cAAA,GAAiB,EAAA,KAAO,CAAA,CAAA;AAEhE,EAAA,IAAI,uBAAA,EAAyB;AAC3B,IAAA,MAAM,IAAI,MAAM,mHAAwC,CAAA;AAAA,EAC1D;AAEA,EAAA,IAAI,QAAQ,CAAA,EAAG;AACb,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,KAAA,GAAQ,cAAc,CAAA,GAAI,cAAA;AAAA,EAC7C;AACA,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,cAAc,CAAA,GAAI,cAAA;AAC9C;;;;"}