Scusate se ripeto la domanda ma non riesco a venirne a capo.. come mai questo:
int tempo = int((60*1000) / ( 20 * float(velocita))) ;
mi dà sempre come risultato (mi pare) -27 ... mentre invece dovrebbe dare 100 posto che velocità e pari a 30??
ho provato in ntutti modi, variabile double, float, dentro la funzione, fuori etc.. pare che la divisione proprio non gli vada bene...
qualche suggerimento????
pictux
October 11, 2010, 10:46am
2
Si tratta sicuramente di un problema di casting.
casting??.. e cosè.. faccio una ricerca su questo forum?
system
October 11, 2010, 10:53am
4
il casting è il forzare il compilatore ad utilizzare una variabile come se fosse di un tipo diverso da quello che hai dichiarato
un esempio è float(velocita)
riesci a provare con
int tempo = int(3000.0 / float(velocita))
e vedere se cambia qualcosa?
uwefed
October 11, 2010, 11:13am
5
Ciao PaoloSanna
60000 caricato in una variabile int (con segno) é il numero negativo -27232.
La soluzione é quella proposta da frog oppure definire la variabile Tempo come float. e convertirla in un secondo momento.
Ciao Uwe