@oliasoft-open-source/units 5.3.0 → 5.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +23 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_units = require("./units2.cjs");
|
|
3
|
+
//#region src/rounding/cosmetic-rounding.ts
|
|
4
|
+
const COSMETIC_ROUNDING_DEFAULT_PRECISION = 14;
|
|
5
|
+
const safeToString = (value) => {
|
|
6
|
+
return String(require_units.toString(value));
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Applies display-only rounding to remove floating-point conversion noise.
|
|
10
|
+
*
|
|
11
|
+
* The value is rounded to 14 significant digits, while strings written in
|
|
12
|
+
* scientific notation are preserved as entered.
|
|
13
|
+
*
|
|
14
|
+
* @param value - numeric value in string representation
|
|
15
|
+
* @returns the cosmetically rounded string
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* roundNumberCosmetic('9750.000000000004') -> '9750'
|
|
19
|
+
*/
|
|
20
|
+
const roundNumberCosmetic = (value) => {
|
|
21
|
+
if (require_units.isScientificStringNum(value)) return value;
|
|
22
|
+
return safeToString(require_units.roundToPrecision(require_units.toNum(value), COSMETIC_ROUNDING_DEFAULT_PRECISION));
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
3
25
|
//#region src/index.ts
|
|
4
26
|
/* istanbul ignore file */
|
|
5
27
|
//#endregion
|
|
@@ -51,6 +73,7 @@ exports.round = require_units.round;
|
|
|
51
73
|
exports.roundByMagnitude = require_units.roundByMagnitude;
|
|
52
74
|
exports.roundByMagnitudeToFixed = require_units.roundByMagnitudeToFixed;
|
|
53
75
|
exports.roundByRange = require_units.roundByRange;
|
|
76
|
+
exports.roundNumberCosmetic = roundNumberCosmetic;
|
|
54
77
|
exports.roundNumberWithLabel = require_units.roundNumberWithLabel;
|
|
55
78
|
exports.roundToDecimalPrecision = require_units.roundToDecimalPrecision;
|
|
56
79
|
exports.roundToFixed = require_units.roundToFixed;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["/* istanbul ignore file */\nimport {\n label,\n showAltUnitsList,\n getAltUnitsListByQuantity,\n checkAndCleanDecimalComma,\n unitFromKey,\n to,\n split,\n unum,\n toBase,\n altUnitsList,\n convertTable,\n roundNumberWithLabel,\n withUnit,\n unumWithUnit,\n validateAndClean,\n isValueWithUnit,\n getValue,\n getUnit,\n convertSamePrecision,\n convertAndGetValue,\n convertAndGetValueStrict,\n getUnitsForQuantity,\n getQuantities,\n unitFromQuantity,\n withPrettyUnitLabel,\n validateNumber,\n} from './units.ts';\n\nimport {\n ALT_UNITS,\n LABELS,\n UNIT_FROM_KEY,\n KNOWN_CONVERSIONS,\n DEPRECATED_UNITS,\n UNIT_ALIASES,\n INTERMEDIATE_CONVERSIONS,\n KNOWN_UNITS,\n QUANTITIES_DESCRIPTION,\n UNITS_DESCRIPTION,\n} from './constants.ts';\n\nimport {\n isNumeric,\n isNonNumerical,\n isEmptyValueWithUnit,\n allNumbers,\n formatNumber,\n charCount,\n getNumberOfDigitsToShow,\n fraction,\n isFraction,\n asFraction,\n numFraction,\n cleanNumStr,\n cleanNum,\n stripLeadingZeros,\n} from './utils.ts';\n\nimport {\n toNum,\n toString,\n isValidNum,\n isScientificStringNum,\n} from './numbers/numbers.ts';\n\nimport {\n displayNumber,\n displayNumberToFixed,\n} from './numbers/display-number.ts';\n\nimport {\n round,\n roundToFixed,\n roundToPrecision,\n roundToDecimalPrecision,\n roundByMagnitude,\n roundByMagnitudeToFixed,\n roundByRange,\n} from './rounding/rounding.ts';\n\nimport {\n isCloseTo,\n isDeepCloseTo,\n isCloseToOrLessThan,\n isCloseToOrGreaterThan,\n} from './comparison/comparison.ts';\n\nexport {\n // Units\n label,\n showAltUnitsList,\n getAltUnitsListByQuantity,\n getUnitsForQuantity,\n getQuantities,\n checkAndCleanDecimalComma,\n unitFromKey,\n unitFromQuantity,\n to,\n split,\n unum,\n toBase,\n altUnitsList,\n convertTable,\n roundNumberWithLabel,\n withUnit,\n unumWithUnit,\n validateAndClean,\n isValueWithUnit,\n getValue,\n getUnit,\n convertSamePrecision,\n convertAndGetValue,\n convertAndGetValueStrict,\n withPrettyUnitLabel,\n validateNumber,\n //Rounding\n round,\n roundToFixed,\n roundToPrecision,\n roundToDecimalPrecision,\n roundByMagnitude,\n roundByMagnitudeToFixed,\n roundByRange,\n //Comparison\n isCloseTo,\n isDeepCloseTo,\n isCloseToOrLessThan,\n isCloseToOrGreaterThan,\n // Utils\n isNumeric,\n isNonNumerical,\n isEmptyValueWithUnit,\n allNumbers,\n formatNumber,\n displayNumber,\n displayNumberToFixed,\n charCount,\n getNumberOfDigitsToShow,\n fraction,\n isFraction,\n asFraction,\n numFraction,\n cleanNumStr,\n cleanNum,\n toNum,\n toString,\n isValidNum,\n isScientificStringNum,\n stripLeadingZeros,\n // Constants\n ALT_UNITS,\n LABELS,\n UNIT_FROM_KEY,\n KNOWN_CONVERSIONS,\n DEPRECATED_UNITS,\n UNIT_ALIASES,\n INTERMEDIATE_CONVERSIONS,\n KNOWN_UNITS,\n QUANTITIES_DESCRIPTION,\n UNITS_DESCRIPTION,\n};\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["toString","isScientificStringNum","roundToPrecision","toNum"],"sources":["../src/rounding/cosmetic-rounding.ts","../src/index.ts"],"sourcesContent":["import { isScientificStringNum, toNum, toString } from '../numbers/numbers.ts';\nimport { roundToPrecision } from './rounding.ts';\n\nconst COSMETIC_ROUNDING_DEFAULT_PRECISION = 14;\n\nconst safeToString = (value: string | number): string => {\n return String(toString(value));\n};\n\n/**\n * Applies display-only rounding to remove floating-point conversion noise.\n *\n * The value is rounded to 14 significant digits, while strings written in\n * scientific notation are preserved as entered.\n *\n * @param value - numeric value in string representation\n * @returns the cosmetically rounded string\n *\n * @example\n * roundNumberCosmetic('9750.000000000004') -> '9750'\n */\nexport const roundNumberCosmetic = (value: string): string => {\n if (isScientificStringNum(value)) {\n return value;\n }\n\n return safeToString(\n roundToPrecision(toNum(value), COSMETIC_ROUNDING_DEFAULT_PRECISION),\n );\n};\n","/* istanbul ignore file */\nimport {\n label,\n showAltUnitsList,\n getAltUnitsListByQuantity,\n checkAndCleanDecimalComma,\n unitFromKey,\n to,\n split,\n unum,\n toBase,\n altUnitsList,\n convertTable,\n roundNumberWithLabel,\n withUnit,\n unumWithUnit,\n validateAndClean,\n isValueWithUnit,\n getValue,\n getUnit,\n convertSamePrecision,\n convertAndGetValue,\n convertAndGetValueStrict,\n getUnitsForQuantity,\n getQuantities,\n unitFromQuantity,\n withPrettyUnitLabel,\n validateNumber,\n} from './units.ts';\n\nimport {\n ALT_UNITS,\n LABELS,\n UNIT_FROM_KEY,\n KNOWN_CONVERSIONS,\n DEPRECATED_UNITS,\n UNIT_ALIASES,\n INTERMEDIATE_CONVERSIONS,\n KNOWN_UNITS,\n QUANTITIES_DESCRIPTION,\n UNITS_DESCRIPTION,\n} from './constants.ts';\n\nimport {\n isNumeric,\n isNonNumerical,\n isEmptyValueWithUnit,\n allNumbers,\n formatNumber,\n charCount,\n getNumberOfDigitsToShow,\n fraction,\n isFraction,\n asFraction,\n numFraction,\n cleanNumStr,\n cleanNum,\n stripLeadingZeros,\n} from './utils.ts';\n\nimport {\n toNum,\n toString,\n isValidNum,\n isScientificStringNum,\n} from './numbers/numbers.ts';\n\nimport {\n displayNumber,\n displayNumberToFixed,\n} from './numbers/display-number.ts';\n\nimport {\n round,\n roundToFixed,\n roundToPrecision,\n roundToDecimalPrecision,\n roundByMagnitude,\n roundByMagnitudeToFixed,\n roundByRange,\n} from './rounding/rounding.ts';\n\nimport { roundNumberCosmetic } from './rounding/cosmetic-rounding.ts';\n\nimport {\n isCloseTo,\n isDeepCloseTo,\n isCloseToOrLessThan,\n isCloseToOrGreaterThan,\n} from './comparison/comparison.ts';\n\nexport {\n // Units\n label,\n showAltUnitsList,\n getAltUnitsListByQuantity,\n getUnitsForQuantity,\n getQuantities,\n checkAndCleanDecimalComma,\n unitFromKey,\n unitFromQuantity,\n to,\n split,\n unum,\n toBase,\n altUnitsList,\n convertTable,\n roundNumberWithLabel,\n withUnit,\n unumWithUnit,\n validateAndClean,\n isValueWithUnit,\n getValue,\n getUnit,\n convertSamePrecision,\n convertAndGetValue,\n convertAndGetValueStrict,\n withPrettyUnitLabel,\n validateNumber,\n //Rounding\n round,\n roundToFixed,\n roundToPrecision,\n roundToDecimalPrecision,\n roundByMagnitude,\n roundByMagnitudeToFixed,\n roundByRange,\n roundNumberCosmetic,\n //Comparison\n isCloseTo,\n isDeepCloseTo,\n isCloseToOrLessThan,\n isCloseToOrGreaterThan,\n // Utils\n isNumeric,\n isNonNumerical,\n isEmptyValueWithUnit,\n allNumbers,\n formatNumber,\n displayNumber,\n displayNumberToFixed,\n charCount,\n getNumberOfDigitsToShow,\n fraction,\n isFraction,\n asFraction,\n numFraction,\n cleanNumStr,\n cleanNum,\n toNum,\n toString,\n isValidNum,\n isScientificStringNum,\n stripLeadingZeros,\n // Constants\n ALT_UNITS,\n LABELS,\n UNIT_FROM_KEY,\n KNOWN_CONVERSIONS,\n DEPRECATED_UNITS,\n UNIT_ALIASES,\n INTERMEDIATE_CONVERSIONS,\n KNOWN_UNITS,\n QUANTITIES_DESCRIPTION,\n UNITS_DESCRIPTION,\n};\n"],"mappings":";;;AAGA,MAAM,sCAAsC;AAE5C,MAAM,gBAAgB,UAAmC;AACvD,QAAO,OAAOA,cAAAA,SAAS,MAAM,CAAC;;;;;;;;;;;;;;AAehC,MAAa,uBAAuB,UAA0B;AAC5D,KAAIC,cAAAA,sBAAsB,MAAM,CAC9B,QAAO;AAGT,QAAO,aACLC,cAAAA,iBAAiBC,cAAAA,MAAM,MAAM,EAAE,oCAAoC,CACpE"}
|
package/dist/index.d.cts
CHANGED
|
@@ -356,6 +356,9 @@ declare const roundByMagnitudeToFixed: <Value extends number | string | null | u
|
|
|
356
356
|
declare const roundByRange: <Value extends number | string | null | undefined>(value: Value, min: number, max: number, n?: number) => Value;
|
|
357
357
|
declare const roundToFixed: <Value extends number | string | null | undefined>(value: Value, n?: number) => Value;
|
|
358
358
|
//#endregion
|
|
359
|
+
//#region src/rounding/cosmetic-rounding.d.ts
|
|
360
|
+
declare const roundNumberCosmetic: (value: string) => string;
|
|
361
|
+
//#endregion
|
|
359
362
|
//#region src/comparison/comparison.d.ts
|
|
360
363
|
type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
|
|
361
364
|
type XOR<T, U> = T | U extends Record<string, unknown> ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
|
|
@@ -369,5 +372,5 @@ declare const isCloseToOrGreaterThan: (firstValue: number | string | null, secon
|
|
|
369
372
|
declare const isCloseToOrLessThan: (firstValue: number | string | null, secondValue: number | string | null, options?: toleranceType) => boolean;
|
|
370
373
|
declare const isDeepCloseTo: (a: any, b: any, options?: toleranceType) => boolean;
|
|
371
374
|
//#endregion
|
|
372
|
-
export { ALT_UNITS, DEPRECATED_UNITS, INTERMEDIATE_CONVERSIONS, KNOWN_CONVERSIONS, KNOWN_UNITS, LABELS, QUANTITIES_DESCRIPTION, UNITS_DESCRIPTION, UNIT_ALIASES, UNIT_FROM_KEY, allNumbers, altUnitsList, asFraction, charCount, checkAndCleanDecimalComma, cleanNum, cleanNumStr, convertAndGetValue, convertAndGetValueStrict, convertSamePrecision, convertTable, displayNumber, displayNumberToFixed, formatNumber, fraction, getAltUnitsListByQuantity, getNumberOfDigitsToShow, getQuantities, getUnit, getUnitsForQuantity, getValue, isCloseTo, isCloseToOrGreaterThan, isCloseToOrLessThan, isDeepCloseTo, isEmptyValueWithUnit, isFraction, isNonNumerical, isNumeric, isScientificStringNum, isValidNum, isValueWithUnit, label, numFraction, round, roundByMagnitude, roundByMagnitudeToFixed, roundByRange, roundNumberWithLabel, roundToDecimalPrecision, roundToFixed, roundToPrecision, showAltUnitsList, split, stripLeadingZeros, to, toBase, toNum, toString, unitFromKey, unitFromQuantity, unum, unumWithUnit, validateAndClean, validateNumber, withPrettyUnitLabel, withUnit };
|
|
375
|
+
export { ALT_UNITS, DEPRECATED_UNITS, INTERMEDIATE_CONVERSIONS, KNOWN_CONVERSIONS, KNOWN_UNITS, LABELS, QUANTITIES_DESCRIPTION, UNITS_DESCRIPTION, UNIT_ALIASES, UNIT_FROM_KEY, allNumbers, altUnitsList, asFraction, charCount, checkAndCleanDecimalComma, cleanNum, cleanNumStr, convertAndGetValue, convertAndGetValueStrict, convertSamePrecision, convertTable, displayNumber, displayNumberToFixed, formatNumber, fraction, getAltUnitsListByQuantity, getNumberOfDigitsToShow, getQuantities, getUnit, getUnitsForQuantity, getValue, isCloseTo, isCloseToOrGreaterThan, isCloseToOrLessThan, isDeepCloseTo, isEmptyValueWithUnit, isFraction, isNonNumerical, isNumeric, isScientificStringNum, isValidNum, isValueWithUnit, label, numFraction, round, roundByMagnitude, roundByMagnitudeToFixed, roundByRange, roundNumberCosmetic, roundNumberWithLabel, roundToDecimalPrecision, roundToFixed, roundToPrecision, showAltUnitsList, split, stripLeadingZeros, to, toBase, toNum, toString, unitFromKey, unitFromQuantity, unum, unumWithUnit, validateAndClean, validateNumber, withPrettyUnitLabel, withUnit };
|
|
373
376
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/constants.ts","../src/utils.ts","../src/numbers/display-number.ts","../src/rounding/rounding.ts","../src/comparison/comparison.ts"],"mappings":";;;;cAQa,MAAA,EAAQ,MAAA;AAAA,cAgOR,SAAA,EAAW,MAAA;AAAA,cAiMX,aAAA,EAAe,MAAA;AAAA,cA8Gf,iBAAA,EAAmB,MAAA,UAAgB,GAAA;AAAA,cA4gBnC,gBAAA,EAAkB,MAAA;AAAA,cAclB,YAAA,EAAc,MAAA;AAAA,cAYd,wBAAA,EAA0B,MAAA;AAAA,cA0K1B,WAAA;AAAA,cAaA,sBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8FA,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCtzCG,oBAAA,CAAqB,GAAA;AAAA,cAkBxB,UAAA,GAAc,KAAA;AAAA,iBAeX,SAAA,CAAU,CAAA;AAAA,iBA6BV,UAAA,CAAW,GAAA;AAAA,cAWd,YAAA,GACX,MAAA;AAAA,iBAUc,SAAA,CAAU,GAAA,mBAAsB,GAAA;AAAA,iBAyBhC,uBAAA,CACd,GAAA,mBACA,YAAA;AAAA,iBAsCc,QAAA,CAAS,GAAA,wBAA2B,QAAA,UAAkB,GAAA;AAAA,iBA8BtD,UAAA,CAAW,GAAA;AAAA,iBAsBX,WAAA,CAAY,GAAA;AAAA,iBAgDZ,WAAA,CAAY,GAAA;AAAA,cAwCf,iBAAA,GAAqB,KAAA;AAAA,iBAgBlB,QAAA,CAAS,GAAA;AAAA,cAaZ,cAAA,GAAkB,KAAA;;;KCjU1B,oBAAA;EACH,UAAA;EACA,SAAA;EACA,mBAAA;EACA,mBAAA;EACA,0BAAA;EACA,QAAA;EACA,oBAAA;EACA,gBAAA;AAAA;AAAA,cAqHW,aAAA,qDACX,KAAA,EAAO,KAAA,EACP,OAAA,GAAU,oBAAA;AAAA,cA0CC,oBAAA,4CACX,KAAA,EAAO,KAAA,EACP,OAAA,GAAU,oBAAA;;;cC/JC,KAAA,qDACX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAyGU,gBAAA,qDAGX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAyCU,uBAAA,qDAGX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAqEU,gBAAA,qDAGX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAyCU,uBAAA,qDAGX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAkEU,YAAA,qDACX,KAAA,EAAO,KAAA,EACP,GAAA,UACA,GAAA,UACA,CAAA,cACC,KAAA;AAAA,cAsCU,YAAA,qDACX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;;;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/constants.ts","../src/utils.ts","../src/numbers/display-number.ts","../src/rounding/rounding.ts","../src/rounding/cosmetic-rounding.ts","../src/comparison/comparison.ts"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -356,6 +356,9 @@ declare const roundByMagnitudeToFixed: <Value extends number | string | null | u
|
|
|
356
356
|
declare const roundByRange: <Value extends number | string | null | undefined>(value: Value, min: number, max: number, n?: number) => Value;
|
|
357
357
|
declare const roundToFixed: <Value extends number | string | null | undefined>(value: Value, n?: number) => Value;
|
|
358
358
|
//#endregion
|
|
359
|
+
//#region src/rounding/cosmetic-rounding.d.ts
|
|
360
|
+
declare const roundNumberCosmetic: (value: string) => string;
|
|
361
|
+
//#endregion
|
|
359
362
|
//#region src/comparison/comparison.d.ts
|
|
360
363
|
type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
|
|
361
364
|
type XOR<T, U> = T | U extends Record<string, unknown> ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
|
|
@@ -369,5 +372,5 @@ declare const isCloseToOrGreaterThan: (firstValue: number | string | null, secon
|
|
|
369
372
|
declare const isCloseToOrLessThan: (firstValue: number | string | null, secondValue: number | string | null, options?: toleranceType) => boolean;
|
|
370
373
|
declare const isDeepCloseTo: (a: any, b: any, options?: toleranceType) => boolean;
|
|
371
374
|
//#endregion
|
|
372
|
-
export { ALT_UNITS, DEPRECATED_UNITS, INTERMEDIATE_CONVERSIONS, KNOWN_CONVERSIONS, KNOWN_UNITS, LABELS, QUANTITIES_DESCRIPTION, UNITS_DESCRIPTION, UNIT_ALIASES, UNIT_FROM_KEY, allNumbers, altUnitsList, asFraction, charCount, checkAndCleanDecimalComma, cleanNum, cleanNumStr, convertAndGetValue, convertAndGetValueStrict, convertSamePrecision, convertTable, displayNumber, displayNumberToFixed, formatNumber, fraction, getAltUnitsListByQuantity, getNumberOfDigitsToShow, getQuantities, getUnit, getUnitsForQuantity, getValue, isCloseTo, isCloseToOrGreaterThan, isCloseToOrLessThan, isDeepCloseTo, isEmptyValueWithUnit, isFraction, isNonNumerical, isNumeric, isScientificStringNum, isValidNum, isValueWithUnit, label, numFraction, round, roundByMagnitude, roundByMagnitudeToFixed, roundByRange, roundNumberWithLabel, roundToDecimalPrecision, roundToFixed, roundToPrecision, showAltUnitsList, split, stripLeadingZeros, to, toBase, toNum, toString, unitFromKey, unitFromQuantity, unum, unumWithUnit, validateAndClean, validateNumber, withPrettyUnitLabel, withUnit };
|
|
375
|
+
export { ALT_UNITS, DEPRECATED_UNITS, INTERMEDIATE_CONVERSIONS, KNOWN_CONVERSIONS, KNOWN_UNITS, LABELS, QUANTITIES_DESCRIPTION, UNITS_DESCRIPTION, UNIT_ALIASES, UNIT_FROM_KEY, allNumbers, altUnitsList, asFraction, charCount, checkAndCleanDecimalComma, cleanNum, cleanNumStr, convertAndGetValue, convertAndGetValueStrict, convertSamePrecision, convertTable, displayNumber, displayNumberToFixed, formatNumber, fraction, getAltUnitsListByQuantity, getNumberOfDigitsToShow, getQuantities, getUnit, getUnitsForQuantity, getValue, isCloseTo, isCloseToOrGreaterThan, isCloseToOrLessThan, isDeepCloseTo, isEmptyValueWithUnit, isFraction, isNonNumerical, isNumeric, isScientificStringNum, isValidNum, isValueWithUnit, label, numFraction, round, roundByMagnitude, roundByMagnitudeToFixed, roundByRange, roundNumberCosmetic, roundNumberWithLabel, roundToDecimalPrecision, roundToFixed, roundToPrecision, showAltUnitsList, split, stripLeadingZeros, to, toBase, toNum, toString, unitFromKey, unitFromQuantity, unum, unumWithUnit, validateAndClean, validateNumber, withPrettyUnitLabel, withUnit };
|
|
373
376
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/constants.ts","../src/utils.ts","../src/numbers/display-number.ts","../src/rounding/rounding.ts","../src/comparison/comparison.ts"],"mappings":";;;;cAQa,MAAA,EAAQ,MAAA;AAAA,cAgOR,SAAA,EAAW,MAAA;AAAA,cAiMX,aAAA,EAAe,MAAA;AAAA,cA8Gf,iBAAA,EAAmB,MAAA,UAAgB,GAAA;AAAA,cA4gBnC,gBAAA,EAAkB,MAAA;AAAA,cAclB,YAAA,EAAc,MAAA;AAAA,cAYd,wBAAA,EAA0B,MAAA;AAAA,cA0K1B,WAAA;AAAA,cAaA,sBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8FA,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCtzCG,oBAAA,CAAqB,GAAA;AAAA,cAkBxB,UAAA,GAAc,KAAA;AAAA,iBAeX,SAAA,CAAU,CAAA;AAAA,iBA6BV,UAAA,CAAW,GAAA;AAAA,cAWd,YAAA,GACX,MAAA;AAAA,iBAUc,SAAA,CAAU,GAAA,mBAAsB,GAAA;AAAA,iBAyBhC,uBAAA,CACd,GAAA,mBACA,YAAA;AAAA,iBAsCc,QAAA,CAAS,GAAA,wBAA2B,QAAA,UAAkB,GAAA;AAAA,iBA8BtD,UAAA,CAAW,GAAA;AAAA,iBAsBX,WAAA,CAAY,GAAA;AAAA,iBAgDZ,WAAA,CAAY,GAAA;AAAA,cAwCf,iBAAA,GAAqB,KAAA;AAAA,iBAgBlB,QAAA,CAAS,GAAA;AAAA,cAaZ,cAAA,GAAkB,KAAA;;;KCjU1B,oBAAA;EACH,UAAA;EACA,SAAA;EACA,mBAAA;EACA,mBAAA;EACA,0BAAA;EACA,QAAA;EACA,oBAAA;EACA,gBAAA;AAAA;AAAA,cAqHW,aAAA,qDACX,KAAA,EAAO,KAAA,EACP,OAAA,GAAU,oBAAA;AAAA,cA0CC,oBAAA,4CACX,KAAA,EAAO,KAAA,EACP,OAAA,GAAU,oBAAA;;;cC/JC,KAAA,qDACX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAyGU,gBAAA,qDAGX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAyCU,uBAAA,qDAGX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAqEU,gBAAA,qDAGX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAyCU,uBAAA,qDAGX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;AAAA,cAkEU,YAAA,qDACX,KAAA,EAAO,KAAA,EACP,GAAA,UACA,GAAA,UACA,CAAA,cACC,KAAA;AAAA,cAsCU,YAAA,qDACX,KAAA,EAAO,KAAA,EACP,CAAA,cACC,KAAA;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/constants.ts","../src/utils.ts","../src/numbers/display-number.ts","../src/rounding/rounding.ts","../src/rounding/cosmetic-rounding.ts","../src/comparison/comparison.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,29 @@
|
|
|
1
1
|
import { $ as displayNumber, A as DEPRECATED_UNITS, B as asFraction, C as unum, D as withPrettyUnitLabel, E as validateNumber, F as QUANTITIES_DESCRIPTION, G as fraction, H as cleanNum, I as UNITS_DESCRIPTION, J as isFraction, K as getNumberOfDigitsToShow, L as UNIT_ALIASES, M as KNOWN_CONVERSIONS, N as KNOWN_UNITS, O as withUnit, P as LABELS, Q as stripLeadingZeros, R as UNIT_FROM_KEY, S as unitFromQuantity, T as validateAndClean, U as cleanNumStr, V as charCount, W as formatNumber, X as isNumeric, Y as isNonNumerical, Z as numFraction, _ as showAltUnitsList, a as convertAndGetValue, at as roundToDecimalPrecision, b as toBase, c as convertTable, ct as isCloseTo, d as getUnit, dt as isDeepCloseTo, et as displayNumberToFixed, f as getUnitsForQuantity, ft as isScientificStringNum, g as roundNumberWithLabel, h as label, ht as toString, i as checkAndCleanDecimalComma, it as roundByRange, j as INTERMEDIATE_CONVERSIONS, k as ALT_UNITS, l as getAltUnitsListByQuantity, lt as isCloseToOrGreaterThan, m as isValueWithUnit, mt as toNum, nt as roundByMagnitude, o as convertAndGetValueStrict, ot as roundToFixed, p as getValue, pt as isValidNum, q as isEmptyValueWithUnit, r as altUnitsList, rt as roundByMagnitudeToFixed, s as convertSamePrecision, st as roundToPrecision, tt as round, u as getQuantities, ut as isCloseToOrLessThan, v as split, w as unumWithUnit, x as unitFromKey, y as to, z as allNumbers } from "./units2.js";
|
|
2
|
+
//#region src/rounding/cosmetic-rounding.ts
|
|
3
|
+
const COSMETIC_ROUNDING_DEFAULT_PRECISION = 14;
|
|
4
|
+
const safeToString = (value) => {
|
|
5
|
+
return String(toString(value));
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Applies display-only rounding to remove floating-point conversion noise.
|
|
9
|
+
*
|
|
10
|
+
* The value is rounded to 14 significant digits, while strings written in
|
|
11
|
+
* scientific notation are preserved as entered.
|
|
12
|
+
*
|
|
13
|
+
* @param value - numeric value in string representation
|
|
14
|
+
* @returns the cosmetically rounded string
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* roundNumberCosmetic('9750.000000000004') -> '9750'
|
|
18
|
+
*/
|
|
19
|
+
const roundNumberCosmetic = (value) => {
|
|
20
|
+
if (isScientificStringNum(value)) return value;
|
|
21
|
+
return safeToString(roundToPrecision(toNum(value), COSMETIC_ROUNDING_DEFAULT_PRECISION));
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
2
24
|
//#region src/index.ts
|
|
3
25
|
/* istanbul ignore file */
|
|
4
26
|
//#endregion
|
|
5
|
-
export { ALT_UNITS, DEPRECATED_UNITS, INTERMEDIATE_CONVERSIONS, KNOWN_CONVERSIONS, KNOWN_UNITS, LABELS, QUANTITIES_DESCRIPTION, UNITS_DESCRIPTION, UNIT_ALIASES, UNIT_FROM_KEY, allNumbers, altUnitsList, asFraction, charCount, checkAndCleanDecimalComma, cleanNum, cleanNumStr, convertAndGetValue, convertAndGetValueStrict, convertSamePrecision, convertTable, displayNumber, displayNumberToFixed, formatNumber, fraction, getAltUnitsListByQuantity, getNumberOfDigitsToShow, getQuantities, getUnit, getUnitsForQuantity, getValue, isCloseTo, isCloseToOrGreaterThan, isCloseToOrLessThan, isDeepCloseTo, isEmptyValueWithUnit, isFraction, isNonNumerical, isNumeric, isScientificStringNum, isValidNum, isValueWithUnit, label, numFraction, round, roundByMagnitude, roundByMagnitudeToFixed, roundByRange, roundNumberWithLabel, roundToDecimalPrecision, roundToFixed, roundToPrecision, showAltUnitsList, split, stripLeadingZeros, to, toBase, toNum, toString, unitFromKey, unitFromQuantity, unum, unumWithUnit, validateAndClean, validateNumber, withPrettyUnitLabel, withUnit };
|
|
27
|
+
export { ALT_UNITS, DEPRECATED_UNITS, INTERMEDIATE_CONVERSIONS, KNOWN_CONVERSIONS, KNOWN_UNITS, LABELS, QUANTITIES_DESCRIPTION, UNITS_DESCRIPTION, UNIT_ALIASES, UNIT_FROM_KEY, allNumbers, altUnitsList, asFraction, charCount, checkAndCleanDecimalComma, cleanNum, cleanNumStr, convertAndGetValue, convertAndGetValueStrict, convertSamePrecision, convertTable, displayNumber, displayNumberToFixed, formatNumber, fraction, getAltUnitsListByQuantity, getNumberOfDigitsToShow, getQuantities, getUnit, getUnitsForQuantity, getValue, isCloseTo, isCloseToOrGreaterThan, isCloseToOrLessThan, isDeepCloseTo, isEmptyValueWithUnit, isFraction, isNonNumerical, isNumeric, isScientificStringNum, isValidNum, isValueWithUnit, label, numFraction, round, roundByMagnitude, roundByMagnitudeToFixed, roundByRange, roundNumberCosmetic, roundNumberWithLabel, roundToDecimalPrecision, roundToFixed, roundToPrecision, showAltUnitsList, split, stripLeadingZeros, to, toBase, toNum, toString, unitFromKey, unitFromQuantity, unum, unumWithUnit, validateAndClean, validateNumber, withPrettyUnitLabel, withUnit };
|
|
6
28
|
|
|
7
29
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/* istanbul ignore file */\nimport {\n label,\n showAltUnitsList,\n getAltUnitsListByQuantity,\n checkAndCleanDecimalComma,\n unitFromKey,\n to,\n split,\n unum,\n toBase,\n altUnitsList,\n convertTable,\n roundNumberWithLabel,\n withUnit,\n unumWithUnit,\n validateAndClean,\n isValueWithUnit,\n getValue,\n getUnit,\n convertSamePrecision,\n convertAndGetValue,\n convertAndGetValueStrict,\n getUnitsForQuantity,\n getQuantities,\n unitFromQuantity,\n withPrettyUnitLabel,\n validateNumber,\n} from './units.ts';\n\nimport {\n ALT_UNITS,\n LABELS,\n UNIT_FROM_KEY,\n KNOWN_CONVERSIONS,\n DEPRECATED_UNITS,\n UNIT_ALIASES,\n INTERMEDIATE_CONVERSIONS,\n KNOWN_UNITS,\n QUANTITIES_DESCRIPTION,\n UNITS_DESCRIPTION,\n} from './constants.ts';\n\nimport {\n isNumeric,\n isNonNumerical,\n isEmptyValueWithUnit,\n allNumbers,\n formatNumber,\n charCount,\n getNumberOfDigitsToShow,\n fraction,\n isFraction,\n asFraction,\n numFraction,\n cleanNumStr,\n cleanNum,\n stripLeadingZeros,\n} from './utils.ts';\n\nimport {\n toNum,\n toString,\n isValidNum,\n isScientificStringNum,\n} from './numbers/numbers.ts';\n\nimport {\n displayNumber,\n displayNumberToFixed,\n} from './numbers/display-number.ts';\n\nimport {\n round,\n roundToFixed,\n roundToPrecision,\n roundToDecimalPrecision,\n roundByMagnitude,\n roundByMagnitudeToFixed,\n roundByRange,\n} from './rounding/rounding.ts';\n\nimport {\n isCloseTo,\n isDeepCloseTo,\n isCloseToOrLessThan,\n isCloseToOrGreaterThan,\n} from './comparison/comparison.ts';\n\nexport {\n // Units\n label,\n showAltUnitsList,\n getAltUnitsListByQuantity,\n getUnitsForQuantity,\n getQuantities,\n checkAndCleanDecimalComma,\n unitFromKey,\n unitFromQuantity,\n to,\n split,\n unum,\n toBase,\n altUnitsList,\n convertTable,\n roundNumberWithLabel,\n withUnit,\n unumWithUnit,\n validateAndClean,\n isValueWithUnit,\n getValue,\n getUnit,\n convertSamePrecision,\n convertAndGetValue,\n convertAndGetValueStrict,\n withPrettyUnitLabel,\n validateNumber,\n //Rounding\n round,\n roundToFixed,\n roundToPrecision,\n roundToDecimalPrecision,\n roundByMagnitude,\n roundByMagnitudeToFixed,\n roundByRange,\n //Comparison\n isCloseTo,\n isDeepCloseTo,\n isCloseToOrLessThan,\n isCloseToOrGreaterThan,\n // Utils\n isNumeric,\n isNonNumerical,\n isEmptyValueWithUnit,\n allNumbers,\n formatNumber,\n displayNumber,\n displayNumberToFixed,\n charCount,\n getNumberOfDigitsToShow,\n fraction,\n isFraction,\n asFraction,\n numFraction,\n cleanNumStr,\n cleanNum,\n toNum,\n toString,\n isValidNum,\n isScientificStringNum,\n stripLeadingZeros,\n // Constants\n ALT_UNITS,\n LABELS,\n UNIT_FROM_KEY,\n KNOWN_CONVERSIONS,\n DEPRECATED_UNITS,\n UNIT_ALIASES,\n INTERMEDIATE_CONVERSIONS,\n KNOWN_UNITS,\n QUANTITIES_DESCRIPTION,\n UNITS_DESCRIPTION,\n};\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/rounding/cosmetic-rounding.ts","../src/index.ts"],"sourcesContent":["import { isScientificStringNum, toNum, toString } from '../numbers/numbers.ts';\nimport { roundToPrecision } from './rounding.ts';\n\nconst COSMETIC_ROUNDING_DEFAULT_PRECISION = 14;\n\nconst safeToString = (value: string | number): string => {\n return String(toString(value));\n};\n\n/**\n * Applies display-only rounding to remove floating-point conversion noise.\n *\n * The value is rounded to 14 significant digits, while strings written in\n * scientific notation are preserved as entered.\n *\n * @param value - numeric value in string representation\n * @returns the cosmetically rounded string\n *\n * @example\n * roundNumberCosmetic('9750.000000000004') -> '9750'\n */\nexport const roundNumberCosmetic = (value: string): string => {\n if (isScientificStringNum(value)) {\n return value;\n }\n\n return safeToString(\n roundToPrecision(toNum(value), COSMETIC_ROUNDING_DEFAULT_PRECISION),\n );\n};\n","/* istanbul ignore file */\nimport {\n label,\n showAltUnitsList,\n getAltUnitsListByQuantity,\n checkAndCleanDecimalComma,\n unitFromKey,\n to,\n split,\n unum,\n toBase,\n altUnitsList,\n convertTable,\n roundNumberWithLabel,\n withUnit,\n unumWithUnit,\n validateAndClean,\n isValueWithUnit,\n getValue,\n getUnit,\n convertSamePrecision,\n convertAndGetValue,\n convertAndGetValueStrict,\n getUnitsForQuantity,\n getQuantities,\n unitFromQuantity,\n withPrettyUnitLabel,\n validateNumber,\n} from './units.ts';\n\nimport {\n ALT_UNITS,\n LABELS,\n UNIT_FROM_KEY,\n KNOWN_CONVERSIONS,\n DEPRECATED_UNITS,\n UNIT_ALIASES,\n INTERMEDIATE_CONVERSIONS,\n KNOWN_UNITS,\n QUANTITIES_DESCRIPTION,\n UNITS_DESCRIPTION,\n} from './constants.ts';\n\nimport {\n isNumeric,\n isNonNumerical,\n isEmptyValueWithUnit,\n allNumbers,\n formatNumber,\n charCount,\n getNumberOfDigitsToShow,\n fraction,\n isFraction,\n asFraction,\n numFraction,\n cleanNumStr,\n cleanNum,\n stripLeadingZeros,\n} from './utils.ts';\n\nimport {\n toNum,\n toString,\n isValidNum,\n isScientificStringNum,\n} from './numbers/numbers.ts';\n\nimport {\n displayNumber,\n displayNumberToFixed,\n} from './numbers/display-number.ts';\n\nimport {\n round,\n roundToFixed,\n roundToPrecision,\n roundToDecimalPrecision,\n roundByMagnitude,\n roundByMagnitudeToFixed,\n roundByRange,\n} from './rounding/rounding.ts';\n\nimport { roundNumberCosmetic } from './rounding/cosmetic-rounding.ts';\n\nimport {\n isCloseTo,\n isDeepCloseTo,\n isCloseToOrLessThan,\n isCloseToOrGreaterThan,\n} from './comparison/comparison.ts';\n\nexport {\n // Units\n label,\n showAltUnitsList,\n getAltUnitsListByQuantity,\n getUnitsForQuantity,\n getQuantities,\n checkAndCleanDecimalComma,\n unitFromKey,\n unitFromQuantity,\n to,\n split,\n unum,\n toBase,\n altUnitsList,\n convertTable,\n roundNumberWithLabel,\n withUnit,\n unumWithUnit,\n validateAndClean,\n isValueWithUnit,\n getValue,\n getUnit,\n convertSamePrecision,\n convertAndGetValue,\n convertAndGetValueStrict,\n withPrettyUnitLabel,\n validateNumber,\n //Rounding\n round,\n roundToFixed,\n roundToPrecision,\n roundToDecimalPrecision,\n roundByMagnitude,\n roundByMagnitudeToFixed,\n roundByRange,\n roundNumberCosmetic,\n //Comparison\n isCloseTo,\n isDeepCloseTo,\n isCloseToOrLessThan,\n isCloseToOrGreaterThan,\n // Utils\n isNumeric,\n isNonNumerical,\n isEmptyValueWithUnit,\n allNumbers,\n formatNumber,\n displayNumber,\n displayNumberToFixed,\n charCount,\n getNumberOfDigitsToShow,\n fraction,\n isFraction,\n asFraction,\n numFraction,\n cleanNumStr,\n cleanNum,\n toNum,\n toString,\n isValidNum,\n isScientificStringNum,\n stripLeadingZeros,\n // Constants\n ALT_UNITS,\n LABELS,\n UNIT_FROM_KEY,\n KNOWN_CONVERSIONS,\n DEPRECATED_UNITS,\n UNIT_ALIASES,\n INTERMEDIATE_CONVERSIONS,\n KNOWN_UNITS,\n QUANTITIES_DESCRIPTION,\n UNITS_DESCRIPTION,\n};\n"],"mappings":";;AAGA,MAAM,sCAAsC;AAE5C,MAAM,gBAAgB,UAAmC;AACvD,QAAO,OAAO,SAAS,MAAM,CAAC;;;;;;;;;;;;;;AAehC,MAAa,uBAAuB,UAA0B;AAC5D,KAAI,sBAAsB,MAAM,CAC9B,QAAO;AAGT,QAAO,aACL,iBAAiB,MAAM,MAAM,EAAE,oCAAoC,CACpE"}
|