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