2017-02-15 4 views
-1

Wie benutze ich Tryparce in Java, um die folgenden Probleme zu lösen? Code Beispiel ist hilfreich.InputMismatchException beim Versuch, 32,5 mit Scanner.nextDouble() zu lesen

enter image description here

enter image description here

import java.util.Scanner; 

class BasicCalculator { 
    public static void main(String args[]) { 
     Scanner input = new Scanner(System.in); 
     double fnum, snum, answer; // firstnumber, 2nd number, answer 
     System.out.println("Enter first number: "); 
     fnum = input.nextDouble(); 
     System.out.println("Enter 2nd number: "); 
     snum = input.nextDouble(); 

     answer = fnum + snum; 
     System.out.println(answer); 
    } 
} 

Enter first number: 
32.5 
Exception in thread "main" java.util.InputMismatchException 
    at java.util.Scanner.throwFor(Unknown Source) 
    at java.util.Scanner.next(Unknown Source) 
    at java.util.Scanner.nextDouble(Unknown Source) 
    at basicCalculator.BasicCalculator.main(BasicCalculator.java:8) 
+1

sollten Dieser Code arbeiten. –

+0

Versuchen Sie erneut zu kompilieren und es erneut auszuführen. –

+0

Möglicherweise verwandt: [Input Mismatch Exception] (http://stackoverflow.com/q/14027537/4204026) –

Antwort

1

TL; DR: useLocale(Locale.ROOT).

Ich lief Ihr Programm und eingegeben 32.5 und 1,000, kein Fehler. Ich änderte dann das allgemeine Format meines Computers auf Deutsch und lief wieder. Diesmal habe ich den gleichen Stack-Trace wie in deiner Frage gesehen. Als nächstes änderte ich die Initialisierung des Scanner zu:

Scanner input = new Scanner(System.in).useLocale(Locale.ROOT); 

nun wieder Ihr Programm funktioniert, wie ich glaube, Sie erwartet:

Enter first number: 
32.5 
Enter 2nd number: 
1,000 
1032.5 
Verwandte Themen