Skip to main content

toNumber()

toNumber(value, defaultValue): number

Converts any value to a number with fallback handling.

note

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โ€‹

InputOutput
'42'42
'3.14'3.14
'invalid'0 (default)
true1
false0
null0 (default)
10n10

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)