Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/05/2014, 08:08
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 5 meses
Puntos: 73
Respuesta: ¿Por qué este bucle no funciona como espero?

Parece un simple problema de precisión en coma flotante. 0.1 en binario resulta ser un decimal periódico, con lo cual, al restar (en Begin Test 1), aparentemente va bien hasta que llegas a restar (en teoría) 0.1 de 0.1, solo que ninguno de los dos valores vale realmente 0.1, y te queda ese resultado de 1.38777878078145e-16 (es decir, CASI cero, pero no cero). Fíjate que, cuando le vuelves a restar 0.1, te sale -0.0999999999999999 (es decir, CASI -0.01, pero no -0.01), aunque luego parece que se vuelve a arreglar (de hecho, si pudieras imprimir esos valores con potrocientos decimales, verías que no todos te saldrían tan redondos).

Echa un vistazo a este post, donde respondí a alguien que, en una validación de datos, resultó que sumar 10 veces 0.1 no le salía 1.0:

http://www.forosdelweb.com/f96/valid...7/#post4153049

Saludos,