Aller au contenu principal

toNumber()

toNumber(value, defaultValue): number

Converts any value to a number with fallback handling.

remarque

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)