Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Configuración regional (Locale) en Java

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.
Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad
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.

1 respuesta

Hola Fernando, espero que estés bien

Sugerencia: compartir tu proyecto en el canal #comparta-tu-codigo en el servidor ONE en Discord ;)

El problema que mencionas sobre el uso de coma en lugar de punto como separador decimal está relacionado con la configuración regional (locale) de tu sistema operativo o de la JVM. Esto afecta cómo Java interpreta los números y otros formatos de datos.

Para solucionar esto, puedes forzar el uso de un locale específico en tu aplicación Java. Aquí te dejo un ejemplo de cómo hacerlo:

import java.util.Locale;
import java.util.Scanner;

public class GLoops {
    public static void main(String[] args) {
        // Forzar el uso del locale de EE.UU. para usar el punto como separador decimal
        Locale.setDefault(new Locale("en", "US"));
        
        Scanner teclado = new Scanner(System.in);
        double mediaEvaluaciones = 0;

        for(int i = 0; i < 3; i++) {
            System.out.println("Escribe la nota que le darías a la película Matrix");
            double nota = teclado.nextDouble();
            mediaEvaluaciones += nota;
        }

        System.out.println("La media de evaluaciones para Matrix es: " + mediaEvaluaciones / 3);
    }
}

En este ejemplo, se establece el locale por defecto a "en_US", lo que debería permitirte usar el punto como separador decimal. Asegúrate de que el locale que elijas sea el adecuado para tus necesidades.

Espero que esto te ayude a resolver el problema. ¡Bons estudos!