Conversion a números en JavaScript
Hay tres maneras de convertir un valor no numérico a un numero.
Cada una de estas funciones reaccionan diferente al mismo input.
Función Number()
La función Number() realiza conversiones de acuerdo a esta regla.
Number(true); // 1
Number(false); // 0
Number(13); // 13
Number(null); // 0
Number(undefined); // NaN
- Si la cadena contiene solo caracteres numéricos, opcionalmente precedido por un signo mas (+) o menos (-), la función siempre convertirá a un número.
- Si la cadena contiene un valor flotante valido, entonces lo convertirá en su respectivo valor flotante númerico.
- Si la cadena contiene un numero hexadecimal valido, entonces retornará un entero que marque el valor hexadecimal.
- Si la cadena es vacia entonces retornará 0
- Si la cadena contiene otro formato diferente a los ya comentados, entonces retornará NaN.
Number('12'); // 12
Number('+12'); // 12
Number('-12'); // -12
Number('000012'); // 12 (Omite los ceros delante del número)
Number('4.2'); // 4.2
Number('0xf'); // 15
Number(''); // 0
Number('Hola :)'); // NaN
ParseInt()
Esta función examina la cadena mucho más de cerca para ver si coincide con un patrón númerico.
Funciona un poco diferente a Number(), miremos aquí sus reglas:
Aquí algunos ejemplos que te ayudarán a clarificar como usar esta función.
parseInt('123'); // 123
parseInt('12.3'); // 12
parseInt('12.99'); // 12
parseInt(' 22'); // 22
parseInt(' '); // NaN
parseInt('456aaa'); // 456
parseInt('aaa456'); // NaN
parseInt('+789'); // 789
parseInt('-789'); // -789
parseInt(' -98'); // -98
ParseFloat()
Es similar a ParseInt(), la única diferencia es que toma en cuenta el carácter punto (.) para continuar convirtiendo o no.
Ejemplos de uso:
parseFloat('1.2'); // 1.2
parseFloat(' 1.2'); // 1.2
parseFloat('1.2.2'); // 1.2
parseFloat('00004.5'); // 4.5
parseFloat('0'); // 0
De esta manera tienes tres formas de convertir a números en JavaScript, si tienes dudas o comentarios no dudes en escribirnos a @tutz_tv en Twitter.