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?
thx
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?
thx
ma nn puoi usare
finche < o al limite <=
il != nei cicpli for con step
è pericoloso specialmene se si lavora
con decimali...
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
dipende dalla precisione dei decimali..
cmq sbaglio o 1/50 fa un numero non periodico?
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 èOriginariamente inviato da AleX ZeTa
sbagli -.-
1/50=0.02
e sia float ke double alla seconda cifra mi pare arrivino... boh -.-'
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.