PDA

Visualizza la versione completa : [C++] Float e cicli


AleX ZeTa
19-11-2003, 16:35
mi potreste spiegare xk questo frammento di codice:

float i,f;
f=1/50.0;
for (i=0.0; i!=1.0; i+=f) printf("A");

genera un ciclo infinito? :dh: :dh:

thx :)

$$$
19-11-2003, 16:57
ma nn puoi usare

finche < o al limite <=

il != nei cicpli for con step
pericoloso specialmene se si lavora
con decimali...

AleX ZeTa
19-11-2003, 18:57
sisi lo so...ma il codice non mio... un test in cui mi stato richiesto l'output.

cmq la cosa che nn capisco xk se uso double va, se uso float no :dh:

$$$
19-11-2003, 19:11
dipende dalla precisione dei decimali..


cmq sbaglio o 1/50 fa un numero non periodico?

AleX ZeTa
19-11-2003, 20:28
sbagli -.-

1/50=0.02

e sia float ke double alla seconda cifra mi pare arrivino... boh -.-'

Andrea Simonassi
19-11-2003, 22:05
Originariamente inviato da AleX ZeTa
sbagli -.-

1/50=0.02

e sia float ke double alla seconda cifra mi pare arrivino... boh -.-'

Sfortunatamente in base 2 (quella usata dal processore) periodico ed

0.0(00001010001111010111)

per cui a forza di sommare perdi la precisione e quindi purtroppo ti ritrovi che sommare 50 volte 1/50 non ti da uno, e il ciclo for ti sballa.

Loading