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);
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!