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โ
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;
}