Luigi Arlotta
a- a+

Conversioni tra interi e decimali

E' possibile convertire numeri interi (int) in numeri decimali (double) e viceversa, ma mentre la conversione di un numero intero in un numero decimale può essere fatta liberamente in quanto non prevede alcuna perdita di informazioni, non è altrettanto vero il 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, viene compilato ed eseguito senza problemi, fornendo come output:


5

il valore intero, contenuto nella variabile i1, è stato utilizzato per inizializzare la variabile f1, di tipo double. L'operazione non comporta alcuna perdita di informazioni. Nel caso inverso invece:

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

In fase di compilazione verrà rilevato un errore, in quanto la conversione di un numero decimale in intero presuppone la perdita dell'informazione relativa alla parte decimale (nel nostro caso 5.7 diverrà 5). Java non consente di eseguire un'operazione del genere, a meno che il programmatore non lo richieda esplicitamente tramite un'istruzione di casting, la cui sintassi è la seguente:

i1 = (int) f1;

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

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

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


5

viene dunque persa la parte decimale.

 



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Francesco
Hai dubbi su questo articolo?