double 値を入力しようとすると、InputMismatchException が発生するのはなぜですか?
提供されたコードでは、nextDouble( ) メソッドは 10 進入力を正しく処理していません。
説明:
コードには次の行があります:
num = reader.nextDouble();
この行Scanner クラスの nextDouble() メソッドを使用して、標準入力から double 値を読み取ろうとします。ただし、小数点を含む double 値 (例: 1.2) を入力すると、正しく解釈されません。
解決策:
この問題を解決するには、次のようにします。小数点区切り文字を使用できるように入力区切り文字を変更して、小数点入力を処理できるようにコードを変更する必要があります。デフォルトの区切り文字 (空白) を使用する代わりに、新しい区切り文字として , (カンマ) を使用すると、ユーザーは 1,2 などの 10 進数値を入力できます。
これを行うには、入力を読み取る前のスキャナ オブジェクト。変更されたコードは次のとおりです。
Scanner reader = new Scanner(System.in).useDelimiter(",");
この変更を行うことで、nextDouble() メソッドは 10 進数の入力を正しく解釈するようになり、InputMismatchException が発生しなくなります。
以上がコンソールから double 値を読み取るときに、InputMismatchException が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。