regresar a la lección

Un bucle infinito ocasional

importancia: 4

Este bucle es infinito. Nunca termina, ¿por qué?

let i = 0;
while (i != 10) {
  i += 0.2;
}

Es porque i nunca sería igual a 10.

Ejecuta esto para ver los valores reales de i:

let i = 0;
while (i < 11) {
  i += 0.2;
  if (i > 9.8 && i < 10.2) alert( i );
}

Ninguno de ellos es exactamente 10.

Tales cosas suceden por las pérdidas de precisión cuando sumamos decimales como 0.2.

Conclusión: evita chequeos de igualdad al trabajar con números decimales.