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.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;
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.

Rispondi quotando