Como assim não funciona???
Se voce ja se deparou este erro em java :

Provavelmente voce esqueceu do metodo "Locale.SetDefault(Locale.US)"
Por que isso acontece?
A nossa maquina virtual ou JVM, vem de padrão no formato Americano ou seja, ao invés
deles usarem "," o que é comum no formato "BR", para eles o "." é o separador decimal.
Então como resolver?
Vamos usar um código em java para exemplificar melhor :

Aqui nós temos um código que mostra o IMC (Índice de massa corporal) onde,
o usuário coloca seu nome, idade, peso e altura.
É feita uma verificação simples com if/else para
saber se a pessoa está abaixo, normal, acima ou obeso.
(OBS. Não reparem no meu (sobre peso), foque no código!!)
A solução para voce não ver mais este erro chato que apareceu logo no começo deste
texto rsrs, é não esquecer de colocar o método "Locale.setDefault(Locale.US) "
desta forma, o erro sera corrigido e a vida sera feliz outra vês !!!
DICA !!!
Caso voce necessite do "Locale" somente no Scanner, faça desta forma :

"Scanner sc = new Scanner(System.in).useLocale(Locale.US)"
Assim o Locale funcionara somente no que estiver no Scanner !!
Até proxima Dica !!!!




Para iniciantes ou projetos pequenos o melhor a se fazer é, usar o (Locale.setDefault) localmente, por que?
Mudar o Locale global afeta toda JVM , incluindo formataçao de numeros, datas e moedas em outras partes do programa.
Se a pessoa esta começando agora e nao entender isso, ela pode causar um "bug" que pode ser dificil de rastrear!
Um exeplo disso é o (NumberFormat) passando a usar ponto decimal quando nao era esperado!
Eduardo, seu artigo sobre o uso do Locale em Java é muito prático! A explicação de por que a JVM pode interpretar o separador decimal de forma diferente ajuda muito quem já se frustrou com erros de leitura de números.
O destaque que você deu para a solução direta, usando Locale.setDefault(Locale.US) ou aplicando o useLocale(Locale.US) no próprio Scanner, mostra uma ótima prática de adaptação sem alterar o restante do programa. Isso é um bom exemplo de como pequenas configurações podem evitar bugs sutis que confundem iniciantes.
Na DIO, ensinamos justamente a atenção a detalhes como esse, porque dominar o comportamento da JVM e lidar com formatos regionais é essencial para criar aplicações robustas.
Para você, qual abordagem é mais prática para iniciantes: mudar o Locale global da JVM ou aplicar localmente no Scanner?