{"version":3,"file":"numbers.cjs","sources":["../../../src/utils/numbers.ts"],"sourcesContent":["/**\n * Round half away from zero ('commercial' rounding)\n * Uses correction to offset floating-point inaccuracies.\n * Works symmetrically for positive and negative numbers.\n *\n * ref: https://stackoverflow.com/a/48764436\n */\nexport function roundDecimals(val: number, dec = 0) {\n  if (Number.isInteger(val)) {\n    return val;\n  }\n\n  let p = 10 ** dec;\n  let n = val * p * (1 + Number.EPSILON);\n  return Math.round(n) / p;\n}\n\n/**\n * Tries to guess number of decimals needed to format a number\n *\n * used for determining minimum decimals required to uniformly\n * format a numric sequence, e.g. 10, 10.125, 10.25, 10.5\n *\n * good for precisce increments:  0.125            -> 3\n * bad  for arbitrary floats:     371.499999999999 -> 12\n */\nexport function guessDecimals(num: number) {\n  return (('' + num).split('.')[1] || '').length;\n}\n"],"names":[],"mappings":";;;;;AAOO,SAAS,aAAA,CAAc,GAAA,EAAa,GAAA,GAAM,CAAA,EAAG;AAClD,EAAA,IAAI,MAAA,CAAO,SAAA,CAAU,GAAG,CAAA,EAAG;AACzB,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,IAAI,IAAI,EAAA,IAAM,GAAA;AACd,EAAA,IAAI,CAAA,GAAI,GAAA,GAAM,CAAA,IAAK,CAAA,GAAI,MAAA,CAAO,OAAA,CAAA;AAC9B,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,GAAI,CAAA;AACzB;AAWO,SAAS,cAAc,GAAA,EAAa;AACzC,EAAA,OAAA,CAAA,CAAS,KAAK,GAAA,EAAK,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,KAAK,EAAA,EAAI,MAAA;AAC1C;;;;;"}