toNumber()
toNumber(
value,defaultValue):number
Converts any value to a number with fallback handling.
Booleans convert to 1/0. Null/undefined/Symbol return default. NaN returns default.
Parameters
value: unknown
The value to convert.
defaultValue: number = 0
Default value if conversion fails.
Returns: number
A number representation of the value.
Since
2.0.0
Note
BigInt values are converted to number (may lose precision for large values).
Performance
O(1)
Also known as
parse (Effect) · toFloat (Radashi) · toNumber (Lodash) · ❌ (es-toolkit, Remeda, Ramda, Modern Dash, Antfu)
Example
toNumber('42'); // => 42
toNumber('3.14'); // => 3.14
toNumber('invalid'); // => 0 (default)
toNumber(true); // => 1
toNumber(false); // => 0
toNumber(null); // => 0 (default)
toNumber('invalid', 10); // => 10 (custom default)
toNumber(10n); // => 10 (BigInt)
How it works?
Converts any value to a number with fallback handling.
Conversion Examples
| Input | Output |
|---|---|
'42' | 42 |
'3.14' | 3.14 |
'invalid' | 0 (default) |
true | 1 |
false | 0 |
null | 0 (default) |
10n | 10 |
Custom Default
Use Cases
Convert inputs safely 📌
Transform various input types to a number, handling NaN and failures gracefully.
Critical for processing user input, query parameters, or API response data.
const page = toNumber(params.page, 1);
const limit = toNumber(params.limit, 20);
Normalize mixed data types
Convert booleans or numeric strings from legacy data sources. Useful for data migration or standardization scripts.
const count = toNumber(data.count); // Handles "10", 10, true (1), or null (0)