@newdash/newdash
Version:
javascript/typescript utility library
52 lines (51 loc) • 1.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const toNumber_1 = __importDefault(require("./toNumber"));
/**
* Used as references for various `Number` constants.
* @ignore
*
*/
const INFINITY = Infinity;
/**
* @ignore
*/
const MAX_INTEGER = Number.MAX_VALUE || 1.7976931348623157e+308;
/**
* Converts `value` to a finite number.
*
* @since 5.5.0
* @category Lang
* @param value The value to convert.
* @returns Returns the converted number.
* @example
*
* ```js
* toFinite(3.2)
* // => 3.2
*
* toFinite(Number.MIN_VALUE)
* // => 5e-324
*
* toFinite(Infinity)
* // => 1.7976931348623157e+308
*
* toFinite('3.2')
* // => 3.2
* ```
*/
function toFinite(value) {
if (!value) {
return value === 0 ? value : 0;
}
value = (0, toNumber_1.default)(value);
if (value === INFINITY || value === -INFINITY) {
const sign = (value < 0 ? -1 : 1);
return sign * MAX_INTEGER;
}
return value === value ? value : 0;
}
exports.default = toFinite;