Converts a string to a number, like an enhanced version of parseFloat.
Features:
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').parseFloat, pass { allowTrailingInvalid: true } as the second argument.'MCCXIV' or 'Ⅻ', pass { romanNumerals: true } as the second argument or call parseRomanNumerals directly.'1,0' means 1, not 10), pass { decimalSeparator: ',' } as the second argument.bigint values when the input represents an integer that would exceeds the boundaries of number, pass { bigIntOnOverflow: true } as the second argument.{ 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).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.
import { numericQuantity } from 'numeric-quantity';
console.log(numericQuantity('1 1/2')); // 1.5
console.log(numericQuantity('2 2/3')); // 2.667
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>
| Option | Type | Default | Description |
|---|---|---|---|
round |
number | false |
3 |
Round the result to a certain number of decimal places. Must be greater than or equal to zero. |
allowTrailingInvalid |
boolean |
false |
Allow and ignore trailing invalid characters à la parseFloat. |
romanNumerals |
boolean |
false |
Attempt to parse Roman numerals if Arabic numeral parsing fails. |
bigIntOnOverflow |
boolean |
false |
Generates a bigint value if the string represents a valid integer too large for the number type. |
decimalSeparator |
',' | '.' |
"." |
Specifies which character to treat as the decimal separator. |