Rumah >Java >javaTutorial >Mengapa saya mendapat InputMismatchException apabila membaca nilai berganda daripada konsol?

Mengapa saya mendapat InputMismatchException apabila membaca nilai berganda daripada konsol?

Barbara Streisand
Barbara Streisandasal
2024-11-07 11:46:02732semak imbas

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

Mengapa saya menghadapi InputMismatchException semasa cuba memasukkan nilai berganda?

Dalam kod yang disediakan, anda mengalami InputMismatchException kerana nextDouble( ) kaedah tidak mengendalikan input perpuluhan dengan betul.

Penjelasan:

Dalam kod anda, anda mempunyai baris berikut:

num = reader.nextDouble();

Baris ini cuba membaca nilai berganda daripada input standard menggunakan kaedah nextDouble() kelas Pengimbas. Walau bagaimanapun, apabila anda memasukkan nilai berganda dengan titik perpuluhan (cth., 1.2), ia tidak ditafsirkan dengan betul.

Penyelesaian:

Untuk menyelesaikan isu ini, anda harus mengubah suai kod anda untuk mengendalikan input perpuluhan dengan menukar pembatas input untuk membenarkan pemisah perpuluhan. Daripada menggunakan pembatas lalai (ruang putih), anda boleh menggunakan , (koma) sebagai pembatas baharu, membenarkan pengguna memasukkan nilai perpuluhan seperti 1,2.

Untuk melakukan ini, gunakan kaedah useDelimiter pada Objek pengimbas sebelum membaca input. Berikut ialah kod yang diubah suai:

Scanner reader = new Scanner(System.in).useDelimiter(",");

Dengan membuat perubahan ini, kaedah nextDouble() akan mentafsir input perpuluhan dengan betul dan anda tidak sepatutnya menemui InputMismatchException lagi.

Atas ialah kandungan terperinci Mengapa saya mendapat InputMismatchException apabila membaca nilai berganda daripada konsol?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn