¿Cómo exactamente Java Scanner analiza el doble?

Estoy usando una máquina con Windows 7 cuyo "Panel de control \ Reloj, idioma y región" es "Dinamarca"

Según la documentación deEscáner:

La configuración regional inicial de un escáner es el valor devuelto por el método Locale.getDefault ();

Pero cuando ejecuto el código:

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

Da salida "en_US" y luego lanza una java.util.InputMismatchException en sc.nextDouble (). Funciona cuando el escáner se inicializa con "1,0"

Sin embargo, si configuro explícitamente la configuración regional:

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

Da salida "en_US" y luego analiza el doble bien. ¿Me estoy perdiendo algo, o la documentación de Scanner es incorrecta?

Editar Siguiendo la sugerencia de @Perception, miré a sc.locale () en el primer ejemplo. Imprime "da_DK". Entonces, ¿por qué no es "en_US", cuando eso es lo que está devolviendo el método Locale.getDefault ()?

Respuestas a la pregunta(1)

Su respuesta a la pregunta