Post

Visualizzazione dei post con l'etichetta casting

Problemi di casting

DOMANDA: Perché se effettuo una divisione tra due interi in una variabile double ottengo in output un numero senza cifre decimali? double risultato = 10 / 3; OUTPUT: 3,0 RISPOSTA: Come si può intuire, in Java, a causa della regola sulle precedenze degli operatori, il cast automatico avviene dopo la  divisione tra i due numeri interi 10 e 3. Il risultato 3 viene quindi convertito in double e diventa 3,0. L'operazione sopra, infatti equivale a: double risultato = (double) (10 / 3); OUTPUT: 3,0 Per ottenere la precisione prevista (senza perdita di informazione) basta fare il cast di almeno uno dei due interi a double: double risultato = (double) 10 / 3; oppure: double risultato = 10 / (double) 3; entrambe le operazioni danno il risultato sperato: OUTPUT: 3,3333333333333335 Ovviamente lo stesso risultato poteva essere raggiunto attraverso l'utilizzo dei letterali: double risultato = 10D / 3;