Problema con esercizio utilizzando Eclipse

di il
3 risposte

Problema con esercizio utilizzando Eclipse

Buonasera a tutti, ho iniziato da un mesetto a studiare programmazione Java (è la prima volta in generale) tramite il libro di Walter Savitch. Utilizzo Eclipse e fino ad ora non ho avuto problemi a parte ora. Sto scrivendo un programma mostrato nel libro, e quando vado per compilarlo mi da un errore. Il programma è il seguente:
import java.util.Scanner;

public class MisuraCerchio {
	public static void main(String [] args) {
		
		double raggio; //in metri
		double area; //in metri quadri
		Scanner tastiera = new Scanner(System.in);
		
		System.out.println("Scrivi il raggio del cerchio in metri");
		raggio = tastiera.nextDouble();
		area = 3.14159 * raggio * raggio;
		System.out.println("Un cerchio di raggio "+ raggio + " metri");
		System.out.println(" ha un'area di " + area + " metri quadri.");
}
}

l'output è quindi ovviamente il seguente: Scrivi il raggio del cerchio in metri
Ma quando vado ad inserire un numero con decimale, ad esempio 2.5 mi restituisce questo

Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
at MisuraCerchio.main(MisuraCerchio.java:11)

Sapreste dirmi per favora cosa significa? Se inserisco un numero senza parte decimale, ad esempio "2" lo compila, altrimenti no, e non è la prima votla, me lo fa con tutti i numeri in virgola mobile quell'errore. Grazie

3 Risposte

  • Re: Problema con esercizio utilizzando Eclipse

    Prova ad inserirlo con la virgola!
  • Re: Problema con esercizio utilizzando Eclipse

    migliorabile ha scritto:


    Prova ad inserirlo con la virgola!
    Incredibile che fosse così semplice… dopo che mi sono sbattuto per ore per capire sono proprio un niubbo. Grazie!
  • Re: Problema con esercizio utilizzando Eclipse

    Jonathan ha scritto:


    Ma quando vado ad inserire un numero con decimale, ad esempio 2.5 mi restituisce questo

    Exception in thread "main" java.util.InputMismatchException
    Con Scanner, l'input dei valori decimali è "localizzato", ovvero segue le regole di un Locale impostato in Scanner (che di base è il Locale predefinito della piattaforma). Quindi se hai la lingua predefinita Italiana, allora "," e non ".".

    Se vuoi cambiare il Locale: metodo useLocale(Locale locale) di Scanner
Devi accedere o registrarti per scrivere nel forum
3 risposte