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
Lepaskan: 2024-11-07 11:46:02
asal
771 orang telah melayarinya

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();
Salin selepas log masuk

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(",");
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan