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)