Converts a string to a number, like an enhanced version of parseFloat.
Features:
- In addition to plain integers and decimals, numeric-quantitycan 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 callparseRomanNumeralsdirectly.
- To produce bigintvalues when the input represents an integer that would exceeds the boundaries ofnumber, pass{ bigIntOnOverflow: true }as the second argument.
- 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 theroundoption ({ round: 5 }will round to five decimal places).
- Returns NaNif 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.
import { numericQuantity } from 'numeric-quantity';
console.log(numericQuantity('1 1/2')); // 1.5
console.log(numericQuantity('2 2/3')); // 2.667As 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>