Rumah > Java > javaTutorial > Mengapakah `Scanner.nextDouble()` Melemparkan `InputMismatchException` dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `Scanner.nextDouble()` Melemparkan `InputMismatchException` dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Lepaskan: 2024-12-11 05:31:13
asal
294 orang telah melayarinya

Why Does `Scanner.nextDouble()` Throw an `InputMismatchException`, and How Can I Fix It?

InputMismatchException Nilai berganda Pengimbas

Pengaturcara Java lazimnya menghadapi InputMismatchException apabila cuba mengimbas nilai berganda menggunakan kaedah nextDouble(). Pengecualian ini menandakan percanggahan antara format data yang dijangkakan dan input sebenar yang diberikan.

Mengapa ia Berlaku

InputMismatchException berlaku apabila input tidak mematuhi angka yang dijangkakan format. Dalam coretan kod yang diberikan, pengimbas tidak dikonfigurasikan secara eksplisit dengan tempat. Ini mengakibatkannya menggunakan tempat lalai sistem, yang boleh mempunyai pemisah perpuluhan yang berbeza (cth., "," dan bukannya "." di sesetengah negara Eropah). Apabila pengimbas mentafsir input, ia menjangkakan perpuluhan yang dipisahkan koma, tetapi sebaliknya menemui titik (.).

Cara Menghindari Isu

Untuk menyelesaikan masalah ini isu, anda boleh menetapkan tempat pengimbas secara eksplisit kepada yang menggunakan pemisah perpuluhan yang dijangkakan. Ini memastikan bahawa pengimbas mentafsir input dengan betul berdasarkan tempat yang ditentukan.

Penyelesaian

Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
Salin selepas log masuk

Dengan menggunakan Locale.US, pengimbas dikonfigurasikan untuk menggunakan tempat yang menjangkakan titik "." sebagai pemisah perpuluhan. Ini sejajar dengan format input yang anda jangkakan (5.1) dan menghalang InputMismatchException.

Atas ialah kandungan terperinci Mengapakah `Scanner.nextDouble()` Melemparkan `InputMismatchException` dan Bagaimana Saya Boleh Membetulkannya?. 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