- Comprendere il concetto di locale nei programmi Java
- Utilizzare Scanner con useLocale(Locale.US)
- Gestire correttamente numeri decimali con punto
- Evitare errori di input legati al separatore decimale
- Scrivere programmi portabili tra sistemi diversi
Gestione del Locale in Java con Scanner
Quando si utilizzano numeri decimali in Java, uno dei problemi più comuni riguarda il separatore decimale. In alcuni sistemi si utilizza la virgola, in altri il punto.
Per evitare errori di interpretazione, Java permette di definire un Locale nello Scanner tramite il metodo useLocale().
Problema senza Locale
Se il sistema operativo è configurato in formato europeo, il numero 3.5 può generare errore.
Scanner input = new Scanner(System.in);
System.out.print("Inserisci un numero decimale: ");
double n = input.nextDouble();
Soluzione: useLocale(Locale.US)
Impostando il locale su Locale.US, il programma accetta il punto come separatore decimale.
import java.util.Scanner;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
input.useLocale(Locale.US);
System.out.print("Inserisci un numero decimale (es. 3.5): ");
double n = input.nextDouble();
System.out.println("Valore inserito: " + n);
input.close();
}
}
Cos’è Locale.US
| Locale | Formato numeri | Esempio |
|---|---|---|
| Locale.ITALY | Virgola | 3,5 |
| Locale.US | Punto | 3.5 |
Perché è importante
- Evita errori di InputMismatchException
- Rende il programma compatibile tra sistemi diversi
- Standardizza il formato di input
Applicazione pratica
In contesti internazionali (applicazioni web, software distribuiti), è fondamentale usare un formato coerente per i numeri.
Scanner input = new Scanner(System.in);
input.useLocale(Locale.US);
double prezzo = input.nextDouble();
double quantita = input.nextDouble();
double totale = prezzo * quantita;
System.out.println("Totale: " + totale);
Concetto chiave
- Il locale influenza il formato dei numeri
- Scanner segue le regole del Locale impostato
- Locale.US usa il punto decimale
- Locale.ITALY usa la virgola decimale
LABORATORIO
Gestione Locale in Scanner
Controllo del formato dei numeri decimali in Java
- Browser
- onlinegdb.com
1 Test base Locale.US
Creare un programma che legge un numero decimale con punto.
input.useLocale(Locale.US);
2 Confronto formati
Testare input con punto e virgola (separatore decimale).
- 3.5 → valido con Locale.US
- 3,5 → non valido con Locale.US
3 Calcolo reale
Simulare un acquisto con prezzi decimali.
- Prezzo prodotto
- Quantità
- Totale finale
4 Esercizio avanzato
- Gestire input di più prodotti
- Applicare Locale.US
- Calcolare totale complessivo