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)