Conversione dei tipi
Perche convertire un tipo
Sezione intitolata “Perche convertire un tipo”A volte hai un valore in un tipo, ma ti serve in un altro.
Per esempio:
- leggi un numero come testo e vuoi usarlo per un calcolo
- hai un
inte vuoi salvarlo in undouble - hai un
doublee vuoi prendere solo la parte intera
Questa operazione si chiama conversione di tipo.
Conversioni automatiche
Sezione intitolata “Conversioni automatiche”Java permette alcune conversioni senza istruzioni speciali.
Per esempio, un int puo diventare un double:
int eta = 20;double etaDecimale = eta;
System.out.println(etaDecimale);Output:
20.0Questa conversione e sicura: un numero intero puo essere rappresentato come numero decimale senza perdere informazione.
Cast esplicito
Sezione intitolata “Cast esplicito”La conversione opposta non e automatica.
double prezzo = 12.90;int prezzoIntero = prezzo; // erroreJava non vuole perdere la parte decimale senza che tu lo dica chiaramente.
Per farlo usi un cast:
double prezzo = 12.90;int prezzoIntero = (int) prezzo;
System.out.println(prezzoIntero);Output:
12Il cast a int taglia la parte decimale. Non arrotonda.
Perdita di informazioni
Sezione intitolata “Perdita di informazioni”Questo dettaglio e importante:
double media = 7.8;int voto = (int) media;
System.out.println(voto);Output:
7La parte .8 sparisce.
Se vuoi arrotondare, usa un metodo apposito:
double media = 7.8;long arrotondato = Math.round(media);
System.out.println(arrotondato);Output:
8Convertire testo in numero
Sezione intitolata “Convertire testo in numero”Quando leggi input dall’utente o da un file, spesso i dati arrivano come testo.
Per trasformare una String in un int, usa Integer.parseInt:
String testo = "25";int numero = Integer.parseInt(testo);
System.out.println(numero + 5);Output:
30Per un double, usa Double.parseDouble:
String testo = "12.50";double prezzo = Double.parseDouble(testo);
System.out.println(prezzo * 2);Output:
25.0Errore comune: testo non valido
Sezione intitolata “Errore comune: testo non valido”Se il testo non contiene un numero valido, Java segnala un errore.
String testo = "ciao";int numero = Integer.parseInt(testo); // errore a runtime"ciao" non puo diventare un numero intero.
Piu avanti vedremo come gestire questi casi con le eccezioni.
Convertire numero in testo
Sezione intitolata “Convertire numero in testo”Per unire un numero a una stringa, spesso basta +:
int eta = 20;String messaggio = "Eta: " + eta;
System.out.println(messaggio);Output:
Eta: 20Java converte il numero in testo per poter costruire la frase.
Regola pratica
Sezione intitolata “Regola pratica”Chiediti sempre:
- sto passando da un tipo piu piccolo a uno piu ampio?
- rischio di perdere dati?
- il testo contiene davvero un numero?
Se la conversione puo perdere informazione, Java ti chiede di essere esplicito. E una protezione, non un fastidio.