Código
for(float i=0.0;i<1;i+=0.01)
cout<<i<<endl;
fácil de entender lo que quiero no?? quiero mostrar por pantala la serie: 0.0, 0.1, 0.2... y así hasta 1
cual es mi sorpresa cuando veo q no suma del todo bien.. empieza correctamente pero llega u momento q no suma exactamente 0.1 sino q suma cifras proximas, mirad esto me muestra por pantalla:
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0.11
....
....
ok hasta aqui todo bien... pero cuando llega a un determinado valor mirad :
0.82
0.83
0.839999
0.849999
0.859999
0.869999
0.879999
0.889999
0.899999
0.909999
0.919999
0.929999
a 0.83 en vez de sumarle 0.1 le suma 0.09999 q es muy similar pero no es exactamente lo mismo, pues bien el programa q estoy programando necesita una exactitud perfecta xq sino me salen resultados no validos.
Puede parecer poco el error, pero si le pido que llegue hasta 100 en vez de uno el error se va acomulando ...
por ejemplo cuando va por 7 ya va
7.84008
7.85008
7.86009
7.87009
7.88009
Parece poco pero a mi me jode mucho de cara al resultado final (estoy intentando calcular el campo electromagnetico generado por un hilo cargado homogeneamente) y esas pequeñas desviaciones producen q el programa calcule valores diferente cada vez q se ejecuta.










Autor



En línea



