Funciones parseInt(), parseFloat()
parseInt() y parseFloat()
parseInt() y parseFloat() son funciones creadas para parsear un string y devolver un número si es posible. Los espacios iniciales y finales se ignoran.
JavaScript analiza la cadena para extraer las cifras que encuentre al principio. Estas cifras al principio del string son las que se transforman a tipo numérico. Cuando se encuentra el primer carácter no numerico se ignora el resto de la cadena. Si el primer carácter encontrado no es convertible a número, el resultado será NaN (Not a Number).
Cuando el valor no es un string, JavaScript hace primero una conversión implícita a string. Esta conversión, en el caso de objetos, se hace llamando al método
toString()
. Podemos reescribir este método para algunos objetos si nos interesa asegurarnos de que devuelvan un stringconvertible a número.parseInt(string, radix) - Conversión de string a entero
radix es opcional y representa la base en la que estamos trabajando. Normalmente trabajaremos en base decimal y este será el valor tomado por defecto en los navegadores modernos (como se define en ECMAScript 5). En navegadores antiguos (IE7, IE8) los número que empiezan por "0" se consideran en base octal por defecto, a no ser que se indique explícitamente el radix 10.
El prefijo 0x indica que el número está en hexadecimal aunque no se incluya radix 16.
Algunos ejemplos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| parseInt( "10" ); // 10 parseInt( "10.8" ); // 10 parseInt( "10 22" ); // 10 parseInt( " 14 " ); // 14 parseInt( "20 dias" ); // 20 parseInt( "Hace 20 dias" ); // NaN parseInt( "44aa33bb" ); // 44 parseInt( "3.14" ); // 3 parseInt( "314e-2" ); // 314 parseInt( "" ); // NaN -> ¡¡el string vacio se convierte a NaN!! parseInt( null ); // NaN parseInt( "10" ,10); // 10 parseInt( "010" ); // 10 ¡¡ * 8 en navegadores antiguos * !! parseInt( "10" ,8); // 8 parseInt( "0x10" ); // 16 0x indica que el número es hexadecimal parseInt( "10" ,16); //16 |
paseFloat(string) - Conversión de string a número en coma flotante
En este caso no existe radix. El número siempre se interpreta como decimal, independientemente de cualquier prefijo que le pongamos (0 para octal ó 0x para hexadecimal).
La diferencia con el anterior, ademas de admitir decimales, es que los números en coma flotante admiten la notación exponencial, del tipo "314e-2" o "0.0314e+2".
Si la función encuentra un carácter que no sea un número (0-9), un signo (+ o -), un punto decimal o un exponente, ignorará todos los caracteres que vengan a continuación.
Si la función encuentra un carácter que no sea un número (0-9), un signo (+ o -), un punto decimal o un exponente, ignorará todos los caracteres que vengan a continuación.
Algunos ejemplos;
1
2
3
4
5
6
7
8
9
10
| parseFloat( "3.14" ); // 3.14 parseFloat( "314e-2" ); // 3.14 parseFloat( "0.0314E+2" ); // 3.14 parseFloat( "3.14dieciseis" ); // 3.14 parseFloat( "A3.14" ); // NaN parseFloat( "tres" ); // NaN parseFloat( "e-2" ); // NaN parseFloat( "0x10" ); // 0 -> No admite el prefijo 0x para indicar 'hexadecimal' parseFloat( "" ); // NaN -> ¡¡el string vacio se convierte a NaN!! parseFloat( null ); // NaN |
Esta función es muy util para convertir valores en pixels o puntos, de CSS, en valores numéricos:
1
| parseFloat( "5px" ); // 5 |
No hay comentarios.:
Publicar un comentario