Scanner: InputMismatchException

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Scanner: InputMismatchException

    Hab folgendes Prog zusammengezimmert :)

    Quellcode

    1. import java.util.Scanner;
    2. class ZinsZins {
    3. public static void main(String args[]){
    4. Scanner eingabe = new Scanner(System.in);
    5. System.out.print("Kapital: ");
    6. final double anfangskapital = eingabe.nextDouble();
    7. System.out.print("Zinssatz: ");
    8. final double zinssatz = eingabe.nextDouble();
    9. System.out.print("Laufzeit: ");
    10. final int laufzeit = eingabe.nextInt();
    11. double kapital = anfangskapital;
    12. int jahre = 0;
    13. while (jahre < laufzeit)
    14. {
    15. double zinsen = kapital * zinssatz / 100;
    16. kapital += zinsen;
    17. jahre++;
    18. }
    19. System.out.println("Endkapital = " + kapital);
    20. }
    21. }
    Alles anzeigen


    Es berechnet mir den Zinseszins für ein angelegtes Kapital... Es lässt sich einwandfrei kompilieren, nur bei der Ausführung hakt es. Sobald ich eine Zahl wie "100.00" eingebe schmiert es mir ab und die Konsole sagt mir:

    Kapital: 100.00
    Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:819)
    at java.util.Scanner.next(Scanner.java:1431)
    at java.util.Scanner.nextInt(Scanner.java:2040)
    at java.util.Scanner.nextInt(Scanner.java:2000)
    at ZinsZins.main(ZinsZins.java:10)

    Process completed.

    Was ist jetzt der fehler? ich habs chon alles ausprobiert :( Vielleicht seht ihr mehr als ich ^^ Wäre dankbar für eine Erklärung :)

    MfG

    Euer One
  • der benutzer muss es halt mit einem komma eingeben
    wenn es stattdessen mit punkt funktionieren soll, dan musst du mit setLocale das Land ändern (ich glaub man setLocale war das richtige)

    aber kannst natülrich auch einfach das komma lassen, das ganze in eine try/catch packen und eine exception werfen, wenn es nicht klappt

    dann erledigst du 2 fliegen mit einer klappe
    1. eingabe mit Punkte ergibt fehler
    2. eingabe mit buchstaben ergibt fehler