Skip to main content

toFinite()

toFinite(value): number

Converts value to a finite number.

DEPRECATED

Use Number() with manual clamping for infinities instead.


Parametersโ€‹

value: unknownโ€‹

The value to convert.


Returns: numberโ€‹

The converted finite number.


See Alsoโ€‹

Number() - MDN


Sinceโ€‹

2.0.0


Also known asโ€‹

toFinite (Lodash, es-toolkit) ยท โŒ (Remeda, Radashi, Ramda, Effect, Modern Dash, Antfu)


Exampleโ€‹

// โŒ Deprecated approach
toFinite(3.7); // => 3.7
toFinite(Infinity); // => 1.7976931348623157e+308 (MAX_VALUE)
toFinite(-Infinity); // => -1.7976931348623157e+308
toFinite(NaN); // => 0

// โœ… Recommended approach
const n = Number(value);
Number.isFinite(n) ? n : (n > 0 ? Number.MAX_VALUE : (n < 0 ? -Number.MAX_VALUE : 0));

How it works?โ€‹

Converts value to a finite number. Deprecated: Use combination of Number() and bounds check.

Native Equivalentโ€‹

// โŒ toFinite(value)
// โœ… Math.max(-Number.MAX_VALUE, Math.min(Number.MAX_VALUE, Number(value)))

Use Casesโ€‹

Convert to finite ๐Ÿ“Œโ€‹

Convert value to finite number, clamping infinities.

const n = Number(value);
const finite = Number.isFinite(n)
? n
: (n > 0 ? Number.MAX_VALUE : (n < 0 ? -Number.MAX_VALUE : 0));

Safe division resultโ€‹

Handle division that might produce infinity.

function safeDivide(a: number, b: number): number {
const result = a / b;
if (!Number.isFinite(result)) {
return result > 0 ? Number.MAX_VALUE : -Number.MAX_VALUE;
}
return result;
}