Heim > Java > javaLernprogramm > Warum erhalte ich eine InputMismatchException, wenn ich doppelte Werte aus der Konsole lese?

Warum erhalte ich eine InputMismatchException, wenn ich doppelte Werte aus der Konsole lese?

Barbara Streisand
Freigeben: 2024-11-07 11:46:02
Original
872 Leute haben es durchsucht

Why am I getting an InputMismatchException when reading double values from the console?

Warum stoße ich auf InputMismatchException, wenn ich versuche, doppelte Werte einzugeben?

Im bereitgestellten Code tritt eine InputMismatchException auf, weil nextDouble( )-Methode verarbeitet Dezimaleingaben nicht korrekt.

Erklärung:

In Ihrem Code befindet sich die folgende Zeile:

num = reader.nextDouble();
Nach dem Login kopieren

Diese Zeile versucht, mithilfe der nextDouble()-Methode der Scanner-Klasse einen Double-Wert aus der Standardeingabe zu lesen. Wenn Sie jedoch einen doppelten Wert mit einem Dezimalpunkt eingeben (z. B. 1,2), wird dieser nicht richtig interpretiert.

Lösung:

Um dieses Problem zu beheben, müssen Sie Sie sollten Ihren Code so ändern, dass er Dezimaleingaben verarbeitet, indem Sie das Eingabetrennzeichen so ändern, dass Dezimaltrennzeichen zulässig sind. Anstatt das Standardtrennzeichen (Leerzeichen) zu verwenden, können Sie , (Komma) als neues Trennzeichen verwenden, sodass der Benutzer Dezimalwerte wie 1,2 eingeben kann.

Verwenden Sie dazu die Methode useDelimiter auf der Scannerobjekt vor dem Lesen der Eingabe. Hier ist der geänderte Code:

Scanner reader = new Scanner(System.in).useDelimiter(",");
Nach dem Login kopieren

Durch diese Änderung interpretiert die nextDouble()-Methode die Dezimaleingabe korrekt und Sie sollten nicht mehr auf die InputMismatchException stoßen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich eine InputMismatchException, wenn ich doppelte Werte aus der Konsole lese?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage