ホームページ  >  記事  >  Java  >  コンソールから double 値を読み取るときに、InputMismatchException が発生するのはなぜですか?

コンソールから double 値を読み取るときに、InputMismatchException が発生するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-07 11:46:02646ブラウズ

Why am I getting an InputMismatchException when reading double values from the console?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。