Conversión de cadenas en números
La parseInt()
función analiza un argumento de cadena y devuelve un número entero de la base especificada (la base en los sistemas numéricos matemáticos).
parseInt(string, radix);
Parámetros
string
El valor para analizar. Si el string
argumento no es una cadena, entonces se convierte en una cadena (usando la ToString
operación abstracta). Los espacios en blanco iniciales en el argumento de cadena se ignoran. '= Raíz Un entero entre 2 y 36 que representa la raíz (la base en los sistemas numéricos matemáticos) de la cadena mencionada anteriormente. Especifique 10
el sistema de numeración decimal comúnmente utilizado por humanos. Especifique siempre este parámetro para eliminar la confusión del lector y garantizar un comportamiento predecible. Las diferentes implementaciones producen resultados diferentes cuando no se especifica una base, por lo general el valor predeterminado es 10. Valor de retorno Un número entero analizado a partir de la cadena dada. Si el primer carácter no se puede convertir en un número, NaN
se devuelve.
Descripción
La parseInt
función convierte su primer argumento en una cadena, lo analiza y devuelve un entero o NaN
. De lo contrario NaN
, el valor devuelto será el número entero que es el primer argumento tomado como un número en la raíz especificada (base). Por ejemplo, una base de 10 indica convertir de un número decimal, 8 octal, 16 hexadecimal, etc. Para radices anteriores 10
, las letras del alfabeto indican números mayor que 9. Por ejemplo, para los números hexadecimales (base 16), A
a través F
se utiliza.
Si parseInt
encuentra un carácter que no es un número en la base especificada, lo ignora y todos los caracteres siguientes y devuelve el valor entero analizado hasta ese punto. parseInt
trunca números a valores enteros. Se permiten espacios al principio y al final.
Debido a que algunos números incluyen el e
carácter en su representación de cadena (p 6.022e23
. Ej. ), Utilizar parseInt
para truncar valores numéricos producirá resultados inesperados cuando se utilice en números muy grandes o muy pequeños. parseInt
no debe utilizarse como sustituto de Math.floor()
.
Si radix es undefined
0 (o está ausente), JavaScript asume lo siguiente:
- Si la entrada
string
comienza con "0x" o "0X", la base es 16 (hexadecimal) y se analiza el resto de la cadena. - Si la entrada
string
comienza con "0", la base es ocho (octal) o 10 (decimal). Exactamente qué base se elige depende de la implementación. ECMAScript 5 especifica que se usa 10 (decimal), pero no todos los navegadores lo admiten todavía. Por esta razón, siempre especifique una base cuando use parseInt. - Si la entrada
string
comienza con cualquier otro valor, la base es 10 (decimal). - Si el primer carácter no se puede convertir en un número, parseInt devuelve NaN.
Para fines aritméticos, el valor de NaN no es un número en ninguna base. Puede llamar a la función isNaN para determinar si el resultado de parseInt es NaN. Si NaN se pasa a operaciones aritméticas, los resultados de la operación también serán NaN.
Para convertir el número a su literal de cadena en una base particular, use intValue.toString (base).
Ejemplos
Usando parseInt
Los siguientes ejemplos, todos regresan 15
:
parseInt(' 0xF', 16); parseInt(' F', 16); parseInt('17', 8); parseInt(021, 8); parseInt('015', 10); // parseInt(015, 10); will return 15 parseInt(15.99, 10); parseInt('15,123', 10); parseInt('FXX123', 16); parseInt('1111', 2); parseInt('15 * 3', 10); parseInt('15e2', 10); parseInt('15px', 10); parseInt('12', 13);
Todos los siguientes ejemplos regresan NaN
:
parseInt('Hello', 8); // Not a number at all parseInt('546', 2); // Digits are not valid for binary representations
Todos los siguientes ejemplos regresan -15
:
parseInt('-F', 16); parseInt('-0F', 16); parseInt('-0XF', 16); parseInt(-15.1, 10) parseInt(' -17', 8); parseInt(' -15', 10); parseInt('-1111', 2); parseInt('-15e1', 10); parseInt('-12', 13);
Todos los siguientes ejemplos regresan 4
:
parseInt(4.7, 10); parseInt(4.7 * 1e22, 10); // Very large number becomes 4 parseInt(0.00000000000434, 10); // Very small number becomes 4
El siguiente ejemplo devuelve 224
:
parseInt('0e0', 16);
Más información:
parseInt en MDN
- parseInt () y parseFloat () intentan convertir la cadena en un número si es posible. Por ejemplo,
var x = parseInt("100"); // x = 100
- Number () se convertirá en un número con el que se puede representar el valor. Esto incluye las fechas en milisegundos desde la medianoche del 1 de enero de 1970 UTC, los valores booleanos en 1 o 0, y los valores que no se pueden convertir en un número reconocible se convertirán en NaN. Eso significa Not a Number y técnicamente también es un número.