Lingua-e
JavaScript

¿Qué significa NaN en aritmética?

← Errores

NaN (Not a Number) es un valor especial IEEE 754 que se propaga silenciosamente a través de los cálculos. Una vez que un NaN entra en un cómputo, cada resultado subsiguiente también es NaN. Se produce por operaciones numéricas inválidas como parsear cadenas no numéricas o dividir cero entre cero.

Por qué ocurre

  • Llamar a parseInt() o parseFloat() en una cadena que no comienza con un número.
  • Realizar aritmética sobre undefined (undefined + 1 === NaN).
  • Usar funciones Math con entrada no numérica (Math.sqrt(-1)).
  • Una reducción de array sin valor inicial en un array vacío.

Ejemplos

JavaScript

Código que causa el error

const price = parseFloat("$19.99");
const tax = price * 0.2;
console.log(tax); // NaN

Error en la terminal

NaN

Cómo solucionarlo

Valida la entrada numérica antes de la aritmética. Usa Number.isNaN() (no el isNaN() global) para verificar NaN ya que isNaN('') devuelve true. Siempre proporciona un valor inicial a Array.reduce(). Elimina símbolos de moneda y formato antes de parsear valores monetarios.

Código corregido

const raw = "$19.99";
const price = parseFloat(raw.replace(/[^0-9.]/g, ""));
if (isNaN(price)) throw new Error(`Cannot parse price: ${raw}`);
const tax = price * 0.2;
console.log(tax); // 3.998

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis