daiazu ha scritto:
Ho realizzato un semplice esempio di input con la classe scanner. Il codice funziona con gli interi ma non con i double e con le stringhe. Dove sta l'errore?
Scanner in = new Scanner( System.in );
//questo funziona
int a = in.nextInt(); //lettura di interi
int b = in.nextInt();
int somma = a+b;
System.out.print("La somma dei due numeri è ");
System.out.println(somma);
//questo non funziona
double c=in.nextDouble(); //lettura di double
double d=c*2; //quello che segue è il messagio se a c si assegna un valore tipo 2.4
System.out.println(d);
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864) at
java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextDouble(Scanner.java:2413)
at input_con_scanner.main(input_con_scanner.java:14)
Java Result: 1
L'errore sta nella tua nazione di residenza. Apparentemente sembra che abiti in Italia, o perlomeno il computer la pensa cosi'.
Prima di dichiarare il tuo oggetto Scanner, prova ad inserire
Locale.setDefault(Locale.US);
In alternativa, utilizza la virgola al posto del punto decimale