Convertir un string a number en JavaScript

En JavaScript, hay varias formas de convertir un string a un número. A continuación, se presentan algunas de las más comunes, cada una con sus propias características y casos de uso.

Operador Unario ‘+’

Esta es una forma rápida y concisa de convertir un string a un número. Si el string no puede ser convertido, devuelve NaN (Not a Number).

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

Función Global ‘Number’

Es una forma explícita de convertir un valor a un número. Si el valor no puede ser convertido, devuelve NaN.

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

Función ‘parseInt’

Convierte un string a un entero. Puedes especificar una base (por ejemplo, base 10 para decimal). Si encuentra un carácter que no es un número, se detiene y devuelve el número hasta ese punto.

let str = "123.456";
let num = parseInt(str, 10);
console.log(num);  // 123

Función ‘parseFloat’

Convierte un string a un número flotante.

let str = "123.456";
let num = parseFloat(str);
console.log(num);  // 123.456

¿Cuál es el recomendable en cada caso?

  1. Operador Unario + y Función Global Number: Estos dos métodos son muy similares en comportamiento. Ambos convierten el string a su equivalente numérico. Si el string no representa un número válido, devolverán NaN. Estos métodos son útiles cuando esperas que el string represente completamente un número.
  2. Funciones parseInt y parseFloat: Estos métodos son útiles cuando el string contiene caracteres adicionales y solo deseas extraer la parte numérica inicial. Por ejemplo, parseInt("123abc", 10) devolverá 123.

Consejo: Siempre es una buena práctica manejar los casos en los que obtienes NaN después de una conversión, para asegurarte de que tu código se comporte correctamente ante datos inesperados.

👉  Cómo saber qué versión de Node.js tengo instalada: 32 ó 64 bits

Finalmente, la elección del método depende del contexto y de lo que esperes del string de entrada. Si estás seguro de que el string contiene un valor numérico y quieres una conversión directa, Number o el operador unario + son buenas elecciones. Si estás tratando con strings que podrían tener caracteres no numéricos y solo te interesa la parte numérica, parseInt o parseFloat podrían ser más adecuados.

👇Tu comentario