Como exatamente o Java Scanner analisa o dobro?

Estou usando uma máquina com Windows 7 cujo "Painel de controle \ Idioma e idioma" é "Dinamarca"

De acordo com a documentação paraScanner:

A localidade inicial de um scanner é o valor retornado pelo método Locale.getDefault ();

Mas quando eu corro o código:

System.out.println(Locale.getDefault());
Scanner sc = new Scanner("1.0");
sc.nextDouble();

Ele gera "en_US" e lança uma java.util.InputMismatchException em sc.nextDouble (). Funciona quando o scanner é inicializado com "1,0"

No entanto, se eu definir explicitamente o local:

Locale.setDefault(Locale.US);
System.out.println(Locale.getDefault());
Scanner sc = new Scanner("1.0");
sc.nextDouble();

Ele gera "en_US" e depois analisa o dobro bem. Estou faltando alguma coisa ou a documentação do Scanner está errada?

Editar Seguindo a sugestão de @Perception, olhei sc.locale () no primeiro exemplo. Imprime "da_DK". Então, por que não é "en_US", quando é isso que está sendo retornado pelo método Locale.getDefault ()?

questionAnswers(1)

yourAnswerToTheQuestion