Originariamente inviato da LeleFT
Perchè non glielo stai dicendo nel modo giusto.
1 è una costante
intera.
3 è una costante
intera.
La divisione fra due numeri interi è un numero intero. 1 / 3 = 0.333. Ma 0.333
non è un valore intero. Quindi viene presa solo la parte intera di quel numero... che è 0.
Solo dopo tu vai ad effettuare il cast... che a questo punto è del tutto inutile.
Tu devi far capire all'esecutore che quella non è una divisione fra interi, ma una divisione fra valori di tipo float (o double). Per questo devi castare uno dei due operandi... se uno dei due operandi
non è intero, il risultato della divisione non sarà più considerato intero.
Il gioco funziona così:
prima viene fatta la divisione e viene valutato il risultato.
Dopo viene preso in considerazione il tuo cast.
Quindi, se vuoi ottenere un risultato float da una divisione, devi assicurarti che almeno uno dei due operandi sia float.
Ciao.