freeCodeCamp/guide/spanish/javascript/converting-strings-to-numbers/index.md

5.5 KiB

title localeTitle
Converting Strings to Numbers Convertir cadenas a números

Convertir cadenas a números

La función parseInt() analiza un argumento de tipo cadena y devuelve un número entero de la base especificada (la base en sistemas numéricos matemáticos).

    parseInt(string, radix); 

Parámetros

string 

El valor a analizar. Si el argumento string no es una cadena, entonces se convierte en una cadena (utilizando la operación abstracta ToString ). Los espacios en blanco iniciales en el argumento de cadena se ignoran. '= base Un número entero entre 2 y 36 que representa la raíz (la base en sistemas de numeración matemática) de la cadena mencionada anteriormente. Especifique 10 para el sistema de numeración decimal comúnmente utilizado por los humanos. Siempre especifique 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 raíz, por lo general, el valor predeterminado es 10. Valor de retorno Un número entero analizado de la cadena dada. Si el primer carácter no se puede convertir en un número, se devuelve NaN .

Descripción

La función parseInt convierte su primer argumento en una cadena, la analiza y devuelve un entero o NaN . Si no es NaN , el valor devuelto será el entero que es el primer argumento tomado como un número en el radix especificado (base). Por ejemplo, una raíz de 10 indica la conversión de un número decimal, 8 octales, 16 hexadecimales, etc. Para los radices superiores a 10 , las letras del alfabeto indican números mayores que 9. Por ejemplo, para números hexadecimales (base 16), se usa de la A a la F

Si parseInt encuentra un carácter que no es un número en el radix especificado, lo ignora y todos los caracteres siguientes y devuelve el valor entero analizado hasta ese punto. parseInt trunca los números a valores enteros. Se permiten espacios iniciales y finales.

Debido a que algunos números incluyen el carácter e en su representación de cadena (por ejemplo, 6.022e23 ), el uso de parseInt para truncar valores numéricos producirá resultados inesperados cuando se utiliza en números muy grandes o muy pequeños. parseInt no debe utilizarse como sustituto de Math.floor() .

Si radix está undefined o es 0 (o está ausente), JavaScript asume lo siguiente:

  • Si el string comienza con "0x" o "0X", radix es 16 (hexadecimal) y se analiza el resto de la cadena.
  • Si el string comienza con "0", la raíz es ocho (octal) o 10 (decimal). Exactamente qué radio 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 este motivo, siempre especifique un radix cuando use parseInt.
  • Si el string comienza con cualquier otro valor, la raíz 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 ningún radix. 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 cadena literal en un radix particular, use intValue.toString (radix).

Ejemplos

Usando parseInt Los siguientes ejemplos todos devuelven 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); 

Los siguientes ejemplos todos devuelven NaN :

    parseInt('Hello', 8); // Not a number at all 
    parseInt('546', 2);   // Digits are not valid for binary representations 

Los siguientes ejemplos todos devuelven -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); 

Los siguientes ejemplos devuelven 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 a un número si es posible. Por ejemplo, var x = parseInt("100"); // x = 100
  • El número () se convertirá en un número por el cual se puede representar el valor. Esto incluye las fechas en el número de milisegundos desde la medianoche del 1 de enero de 1970 UTC, los valores booleanos hasta 1 o 0, y los valores que no se pueden convertir a un número reconocible se convertirán en NaN. Eso significa que no es un número y, técnicamente, también es un número.