Skip to content

toFinite #1260

Open
Open
@char0n

Description

@char0n

Is your feature request related to a problem? Please describe.

Converts value to a finite number.

Describe the solution you'd like

toFinite(3.2); // => 3.2
toFinite(Number.MIN_VALUE); // => 5e-324
toFinite(Infinity); // => 1.7976931348623157e+308
toFinite('3.2'); // => 3.2

Possible implementation:

const toFinite = curry1((value) {
  if (!value) return value === 0 ? value : 0;

  const result = toNumber(value);

  if (!isFinite(result)) {
    const sign = (value < 0 ? -1 : 1);
    return sign * Number.MAX_SAFE_INTEGER;
  }
  
  return result === result ? result : 0;
});

Describe alternatives you've considered

--

Additional context

Currently blocked by toNumber issue.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions