Luigi Arlotta
a- a+

Conversioni tra interi e decimali

E' possibile convertire numeri interi (int) innumeri decimali (double) e viceversa, ma mentre laconversione di un numero intero in un numero decimalepuò essere fatta liberamente in quanto non prevedealcuna perdita di informazioni, non è altrettanto veroil viceversa. Osserviamo gli esempi riportati di seguito:

int i1 = 5;double f1;f1 = i1;System.out.println (f1);

Il codice, opportunamente inserito in una classe, vienecompilato ed eseguito senza problemi, fornendo come output:


5

il valore intero, contenuto nella variabile i1,è stato utilizzato per inizializzare la variabilef1, di tipo double. L'operazione noncomporta alcuna perdita di informazioni. Nel caso inversoinvece:

int i1;double f1 = 5.7;i1 = f1;System.out.println (i1);

In fase di compilazione verrà rilevato un errore, inquanto la conversione di un numero decimale in interopresuppone la perdita dell'informazione relativa allaparte decimale (nel nostro caso 5.7 diverrà 5). Javanon consente di eseguire un'operazione del genere, a menoche il programmatore non lo richieda esplicitamente tramiteun'istruzione di casting, la cui sintassi èla seguente:

i1 = (int) f1;

Questo indica al compilatore di convertire la variabile ditipo double f1 in un intero anche se ciòcomporta una perdita di informazione, ed assegnare ilrisultato alla variabile di tipo intero i1. Il codicecorretto quindi è:

int i1;double f1 = 5.7;i1 = (int) f1;System.out.println (i1);

In questo caso il codice verrà compilato senzagenerare errori. L'output sarà:


5

viene dunque persa la parte decimale.

 



Ti potrebbe interessare anche

commenta la notizia