Pourquoi est-ce que je rencontre une exception InputMismatchException en essayant de saisir des valeurs doubles ?
Dans le code fourni, vous rencontrez une exception InputMismatchException car le nextDouble( ) ne gère pas correctement la saisie décimale.
Explication :
Dans votre code, vous avez la ligne suivante :
num = reader.nextDouble();
Cette ligne tente de lire une valeur double à partir de l'entrée standard en utilisant la méthode nextDouble() de la classe Scanner. Cependant, lorsque vous saisissez une valeur double avec un point décimal (par exemple, 1,2), elle n'est pas interprétée correctement.
Solution :
Pour résoudre ce problème, vous devrait modifier votre code pour gérer la saisie décimale en modifiant le délimiteur d'entrée pour autoriser les séparateurs décimaux. Au lieu d'utiliser le délimiteur par défaut (espace), vous pouvez utiliser , (virgule) comme nouveau délimiteur, permettant à l'utilisateur de saisir des valeurs décimales telles que 1,2.
Pour ce faire, utilisez la méthode useDelimiter sur le Objet scanner avant de lire l’entrée. Voici le code modifié :
Scanner reader = new Scanner(System.in).useDelimiter(",");
En effectuant cette modification, la méthode nextDouble() interprétera correctement la saisie décimale, et vous ne devriez plus rencontrer 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!