Cómo convertir una cadena en un número en JavaScript (con ejemplos)

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 stringargumento no es una cadena, entonces se convierte en una cadena (usando la ToStringoperació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 10el 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, NaNse devuelve.

Descripción

La parseIntfunció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), Aa través Fse utiliza.

Si parseIntencuentra 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. parseInttrunca números a valores enteros. Se permiten espacios al principio y al final.

Debido a que algunos números incluyen el ecarácter en su representación de cadena (p 6.022e23. Ej. ), Utilizar parseIntpara truncar valores numéricos producirá resultados inesperados cuando se utilice en números muy grandes o muy pequeños. parseIntno debe utilizarse como sustituto de Math.floor().

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

  • Si la entrada stringcomienza con "0x" o "0X", la base es 16 (hexadecimal) y se analiza el resto de la cadena.
  • Si la entrada stringcomienza 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 stringcomienza 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 parseIntLos 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.