El motivo por el que en tu código Java el Scanner recibe la coma ( , ) y no el punto ( . ) es por la configuración regional (locale) de tu sistema operativo o de la JVM.
Qué es el locale
El locale (configuración regional) indica a Java:
qué idioma usar,
qué separador decimal aplicar,
cómo mostrar fechas, monedas, etc.
Forzar el idioma según tu país:
teclado.useLocale(new Locale("pt", "BR"));
** En Windows**
Abre Configuración - Hora e idioma - Región.
Cambia “País o región” y/o “Configuración regional” (por ejemplo: “Colombia”, “Brasil”, “Estados Unidos”).
Java tomará automáticamente esa configuración al ejecutar el programa.
En el sistema operativo
Cada sistema tiene su propia forma de definir el “idioma regional”, y Java lo detecta automáticamente cuando inicia la JVM.