You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					43 lines
				
				868 B
			
		
		
			
		
	
	
					43 lines
				
				868 B
			| 
											3 years ago
										 | var toNumber = require('./toNumber'); | ||
|  | 
 | ||
|  | /** Used as references for various `Number` constants. */ | ||
|  | var INFINITY = 1 / 0, | ||
|  |     MAX_INTEGER = 1.7976931348623157e+308; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Converts `value` to a finite number. | ||
|  |  * | ||
|  |  * @static | ||
|  |  * @memberOf _ | ||
|  |  * @since 4.12.0 | ||
|  |  * @category Lang | ||
|  |  * @param {*} value The value to convert. | ||
|  |  * @returns {number} Returns the converted number. | ||
|  |  * @example | ||
|  |  * | ||
|  |  * _.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 = toNumber(value); | ||
|  |   if (value === INFINITY || value === -INFINITY) { | ||
|  |     var sign = (value < 0 ? -1 : 1); | ||
|  |     return sign * MAX_INTEGER; | ||
|  |   } | ||
|  |   return value === value ? value : 0; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = toFinite; |