ホームページ >Java >&#&チュートリアル >スキャナーで二重値を読み取るときに、InputMismatchException が発生するのはなぜですか?
Double 値の取得中に InputMismatchException が発生するのはなぜですか?
Java では、Scanner を使用して Double 値を読み取るときに、次の場合に InputMismatchException が発生することがあります。入力は、予期される 10 進形式に厳密に準拠していません。
問題の理解:
提供されたコードには、checkValueWithin メソッドと askForMarks メソッドが含まれています。 checkValueWithin は、指定された範囲内の数値入力を検証することを目的としています。
この問題は、ユーザー入力が 0 ~ 30 の範囲の double 値であると想定される askForMarks メソッドで発生します。ただし、入力がフォーマットされている可能性があります。この問題は、ユーザー入力がカンマを使用してフォーマットされていることを確認することで解決できます。ドットの代わりに小数点区切り文字を使用します。たとえば、1.2 の代わりに 1,2 と入力します。これは、Java の double 値表現と一致しています。
askForMarks の変更されたコードは次のとおりです。
この変更により、double 値が正しく入力され、スキャナーでの InputMismatchException の発生が防止されます。以上がスキャナーで二重値を読み取るときに、InputMismatchException が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。