Skip to content

jakeboone02/numeric-quantity

Folders and files

NameName
Last commit message
Last commit date
Mar 31, 2025
Apr 11, 2025
Jul 27, 2023
Apr 11, 2025
Mar 31, 2025
Aug 20, 2023
Dec 2, 2023
Apr 15, 2022
Jan 15, 2024
Feb 11, 2021
Jul 27, 2023
Mar 31, 2025
Jul 6, 2024
Jul 27, 2023
Mar 31, 2025
Mar 31, 2025
Mar 31, 2025
Mar 31, 2025
Jul 6, 2024
Jun 11, 2024

Repository files navigation

npm workflow status codecov.io downloads MIT License

Converts a string to a number, like an enhanced version of parseFloat.

Full documentation

Features:

  • In addition to plain integers and decimals, numeric-quantity can parse numbers with comma or underscore separators ('1,000' or '1_000'), mixed numbers ('1 2/3'), vulgar fractions ('1⅖'), and the fraction slash character ('1 2⁄3').
  • To allow and ignore trailing invalid characters à la parseFloat, pass { allowTrailingInvalid: true } as the second argument.
  • To parse Roman numerals like 'MCCXIV' or 'Ⅻ', pass { romanNumerals: true } as the second argument or call parseRomanNumerals directly.
  • Results will be rounded to three decimal places by default. To avoid rounding, pass { round: false } as the second argument. To round to a different number of decimal places, assign that number to the round option ({ round: 5 } will round to five decimal places).
  • Returns NaN if the provided string does not resemble a number.

For the inverse operation—converting a number to an imperial measurement—check out format-quantity.

For a more complete solution to parsing recipe ingredients, try parse-ingredient.

Usage

Installed

import { numericQuantity } from 'numeric-quantity';

console.log(numericQuantity('1 1/2')); // 1.5
console.log(numericQuantity('2 2/3')); // 2.667

CDN

As an ES module:

<script type="module">
  import { numericQuantity } from 'https://cdn.jsdelivr.net/npm/numeric-quantity/+esm';

  console.log(numericQuantity('10½')); // 10.5
</script>

As UMD (all exports are properties of the global object NumericQuantity):

<script src="https://unpkg.com/numeric-quantity"></script>
<script>
  console.log(NumericQuantity.numericQuantity('xii', { romanNumerals: true })); // 12
</script>