Teleco
Publicado por Bea (2 intervenciones) el 02/04/2009 11:21:05
Hola,
Estoy empezando a programar con Visual Studio y me ha surgido un problema...
Tengo las siguientes variables declaradas:
float t;
float STOPTIME, dt;
y luego
STOPTIME=8000000;
dt=0.01;
t=0;
for(step=0;t<STOPTIME;step++) //esta es la forma de acualizar t
t+=dt;
La cuestión es que no se por qué motivo mi dt no es 0.01 sino que es 0.010000000001, de forma que al principio no tiene importancia pero cuando va aumentando el número de steps esto si que me afecta.
Otra cosa, mucho más curiosa es que cuando t=32768; el programa empieza a pasar de la linea que actualiza t, es decir, pasa por la linea, porque lo he visto poniendo puntos de interrupción, pero t sigue valiendo 32768 para siempre, lo que produce que nunca se salga del bucle for!!
¿por qué pasa esto?¿qué tiene de especial el número 32768?
Estoy empezando a programar con Visual Studio y me ha surgido un problema...
Tengo las siguientes variables declaradas:
float t;
float STOPTIME, dt;
y luego
STOPTIME=8000000;
dt=0.01;
t=0;
for(step=0;t<STOPTIME;step++) //esta es la forma de acualizar t
t+=dt;
La cuestión es que no se por qué motivo mi dt no es 0.01 sino que es 0.010000000001, de forma que al principio no tiene importancia pero cuando va aumentando el número de steps esto si que me afecta.
Otra cosa, mucho más curiosa es que cuando t=32768; el programa empieza a pasar de la linea que actualiza t, es decir, pasa por la linea, porque lo he visto poniendo puntos de interrupción, pero t sigue valiendo 32768 para siempre, lo que produce que nunca se salga del bucle for!!
¿por qué pasa esto?¿qué tiene de especial el número 32768?
Valora esta pregunta


0