Skip to content

Cómo convertir una cadena a un número en JavaScript: Métodos y ejemplos

Introducción

Al trabajar con JavaScript, es común encontrarse con situaciones en las que necesitas convertir una cadena a un número. Ya sea que estés tratando con entrada de usuario, datos de una API o manipulando valores en tu código, saber cómo convertir correctamente una cadena a un número es una habilidad esencial para cualquier desarrollador de JavaScript.

Problema

Las cadenas y los números son tipos de datos fundamentalmente diferentes en JavaScript. Mientras que puedes realizar operaciones matemáticas en números, las mismas operaciones en cadenas producirán resultados diferentes y a menudo inesperados. Para evitar errores y asegurarte de que tu código funcione como se espera, necesitas convertir las cadenas a números cuando sea necesario.

Contexto

JavaScript proporciona varios métodos integrados para convertir una cadena a un número, cada uno con un comportamiento ligeramente diferente:

  1. Number(): Esta función convierte la cadena a un número. Si la cadena no contiene un número válido, devuelve NaN (Not a Number).

  2. Operador unario plus (+): Colocar un + antes de una cadena es una forma abreviada de convertirla a un número, equivalente a llamar a Number().

  3. parseInt() y parseFloat(): Estas funciones analizan una cadena y devuelven un número entero o un número de punto flotante, respectivamente. Se detienen al analizar el primer carácter no numérico.

  4. Métodos de Math: Math.floor(), Math.ceil() y Math.round() se pueden usar con parseFloat() para convertir una cadena a un número entero con diferentes comportamientos de redondeo.

Solución

Aquí te mostramos cómo puedes convertir una cadena a un número en JavaScript utilizando los diferentes métodos:

Usando Number():

js
let str = "123";
let num = Number(str);
console.log(num); // 123

Usando el operador unario plus (+):

js
let str = "123";  
let num = +str;
console.log(num); // 123

Usando parseInt() y parseFloat():

js
let intString = "123px";
let floatString = "123.45px"; 
let intNum = parseInt(intString);
let floatNum = parseFloat(floatString);
console.log(intNum); // 123
console.log(floatNum); // 123.45

Usando métodos de Math:

js
let str = "123.45";
let num = Math.floor(parseFloat(str)); 
console.log(num); // 123

Al decidir qué método usar, considera lo siguiente:

  • Usa Number() o + cuando esperes que la cadena sea un número válido.
  • Usa parseInt() o parseFloat() cuando la cadena pueda contener caracteres no numéricos y quieras extraer el número inicial.
  • Usa métodos de Math con parseFloat() cuando necesites convertir a un número entero con un redondeo específico.

Recuerda manejar los casos en los que la conversión pueda fallar, como verificar los resultados NaN.

Conclusión

Convertir cadenas a números es una tarea fundamental en la programación de JavaScript. Al comprender los diferentes métodos disponibles y sus matices, puedes escribir código que maneje adecuadamente las conversiones de cadena a número. Ya sea usando Number(), el operador unario plus, parseInt()/parseFloat() o métodos de Math, elige el enfoque que mejor se adapte a tus necesidades específicas. Con este conocimiento, podrás abordar las conversiones de cadena a número con confianza y construir aplicaciones de JavaScript más robustas.