0

検索しましたが、コードに問題があるようには見えません。助けてください!

コードはコンパイルされますが、これは質問 3 に答えたいときに表示されるエラーです。

Exception in thread "main" java.util.InputMismatchException
        at java.util.Scanner.throwFor(Unknown Source)
        at java.util.Scanner.next(Unknown Source)
        at java.util.Scanner.nextDouble(Unknown Source)
        at ForgetfulMachine.main(ForgetfulMachine.java:16)

そして、これは私のコードです:

import java.util.Scanner;

public class ForgetfulMachine
{
    public static void main( String[] args )
    {
        Scanner keyboard = new Scanner(System.in);

        System.out.println( "What city is the capital of Germany?" );
        keyboard.next();

        System.out.println( "What is 6 divided by 2?" );
        keyboard.nextInt();

        System.out.println( "What is your favorite number between 0.0 and 1.0?" );
        keyboard.nextDouble();

        System.out.println( "Is there anything else you would like to tell me?" );
        keyboard.next();
    }
}
4

2 に答える 2

2

Scannerエントリがスキャナのロケールに対して正しくない形式である場合、この例外がスローされます。特に、あなたの場合、間違った小数点記号が使用されている場合。.とは両方とも、,一般的なロケール固有の小数点記号です。

デフォルトのロケールの小数点記号を調べるには、次を使用できます。

System.out.println(
    javax.text.DecimalFormatSymbols.getInstance().getDecimalSeparator()
);

以下も参照してください。

于 2014-11-19T23:57:30.587 に答える