Projekt

Obecné

Profil

Stáhnout (868 Bajtů) Statistiky
| Větev: | Revize:
1
var toNumber = require('./toNumber');
2

    
3
/** Used as references for various `Number` constants. */
4
var INFINITY = 1 / 0,
5
    MAX_INTEGER = 1.7976931348623157e+308;
6

    
7
/**
8
 * Converts `value` to a finite number.
9
 *
10
 * @static
11
 * @memberOf _
12
 * @since 4.12.0
13
 * @category Lang
14
 * @param {*} value The value to convert.
15
 * @returns {number} Returns the converted number.
16
 * @example
17
 *
18
 * _.toFinite(3.2);
19
 * // => 3.2
20
 *
21
 * _.toFinite(Number.MIN_VALUE);
22
 * // => 5e-324
23
 *
24
 * _.toFinite(Infinity);
25
 * // => 1.7976931348623157e+308
26
 *
27
 * _.toFinite('3.2');
28
 * // => 3.2
29
 */
30
function toFinite(value) {
31
  if (!value) {
32
    return value === 0 ? value : 0;
33
  }
34
  value = toNumber(value);
35
  if (value === INFINITY || value === -INFINITY) {
36
    var sign = (value < 0 ? -1 : 1);
37
    return sign * MAX_INTEGER;
38
  }
39
  return value === value ? value : 0;
40
}
41

    
42
module.exports = toFinite;
(536-536/590)