Maison > Java > javaDidacticiel > Pourquoi `Scanner.nextDouble()` génère-t-il une `InputMismatchException` et comment puis-je y remédier ?

Pourquoi `Scanner.nextDouble()` génère-t-il une `InputMismatchException` et comment puis-je y remédier ?

Linda Hamilton
Libérer: 2024-12-11 05:31:13
original
301 Les gens l'ont consulté

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

Scanner double Value InputMismatchException

Les programmeurs Java rencontrent généralement l'InputMismatchException lorsqu'ils tentent d'analyser des valeurs doubles à l'aide de la méthode nextDouble(). Cette exception signale un écart entre le format de données attendu et l'entrée réelle fournie.

Pourquoi cela se produit

L'InputMismatchException se produit lorsque l'entrée n'est pas conforme au numérique attendu. format. Dans l'extrait de code donné, le scanner n'est pas explicitement configuré avec des paramètres régionaux. Cela entraîne l'utilisation des paramètres régionaux par défaut du système, qui peuvent avoir différents séparateurs décimaux (par exemple, "," au lieu de "." dans certains pays européens). Lorsque le scanner interprète l'entrée, il attend une décimale séparée par des virgules, mais rencontre un point (.) à la place.

Comment contourner le problème

Pour résoudre ce problème problème, vous pouvez définir explicitement les paramètres régionaux du scanner sur ceux qui utilisent le séparateur décimal attendu. Cela garantit que le scanner interprète correctement l'entrée en fonction des paramètres régionaux spécifiés.

Solution

Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
Copier après la connexion

En utilisant Locale.US, le scanner est configuré pour utiliser un locale qui attend un point "." comme séparateur décimal. Cela correspond au format d'entrée que vous attendez (5.1) et empêche l'InputMismatchException.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal