Originariamente inviato da matrics21
in effetti non ci avrei pensato nemmeno io a scrivere la formula così.

Se avessi scritto così non avrei ottenuto la stessa cosa?

z=(double)(x/y)*100;
No, non avresti ottenuto la stessa cosa; avresti commesso invece lo stesso errore di JunkyFunky, poichè la conversione di tipo sarebbe avvenuta alla fine, DOPO che la divisione era già stata effettuata.

Il succo della sostanza è che bisogna forzare la conversione di tipo PRIMA che venga fatta la divisione, altrimenti si ritorna all'errore di prima.

Probabilmente, però, è sufficiente convertire o x o y a double prima della divisione, per ottenere che l'intera divisione venga effettuata in double.

La mia proposta convertiva esplicitamente ENTRAMBI x e y a double prima della divisione, cosa che appunto forse non è necessaria; basta uno solo dei due.

Ciao!

Ps: forse non era chiaro il mio spezzone di codice: moltiplicare una variabile intera per un valore con la virgola, ache se con decimali nulli, provoca il cambio di tipo; se x è un int, x*1.0 è lo stesso valore convertito a double.