ホームページ >Java >&#&チュートリアル >スキャナーで二重値を読み取るときに、InputMismatchException が発生するのはなぜですか?

スキャナーで二重値を読み取るときに、InputMismatchException が発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-05 21:21:02318ブラウズ

Why Am I Getting an InputMismatchException When Reading Double Values with Scanner?

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

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