Erro na entrada de float/double(Iniciante) [Resolvido]

Galera, não estou conseguindo entrar com valores float ou double no Netbeans; segue imagem:

desde já agradeço a ajuda :smiley:

Olá, tudo bem?

Bem estranho esse erro, eu inclusive testei aqui usando o wrapper e o tipo primitivo, e não tive problemas.
Você já tentou usar o wrapper (Float)?

Abraço.

1 curtida

Pode parecer besteira, mas tenta fechar e abrir novamente o NetBeans. Algumas coisas loucas do Netbeans faz isso acontecer.

1 curtida

Possível solução:

Na hora de dar input pro teu programa, digite 5,2 ao invés de 5.2, use a vírgula ao invés do ponto para separar as casas decimais.

Explicação:

Na documentação da classe Scanner, eles falam que o objeto utiliza a Locale do sistema operacional para interpretar números. Isso significa que, como teu sistema tá em português do Brasil (deduzi pelos menus do netbeans em português), a locale que está sendo utilizada é a brasileira. Aqui no brasil, utilizamos pontos para separar grupos de números (centenas, milhares, milhões, etc) e a vírgula para separar as casas decimais, assim:

110.240,12

Esse número, usando nossa locale, tem a parte inteira de cento é dez mil, duzentos e quarenta, e a parte real de doze centésimos (ou 120 milésimos, ou 1.2 décimos).

É possível trocar a locale programaticamente para utilizar essa que você está tentando, e aí vai funcionar utilizar 5.2. Para fazer isso, basta utilizar o método de instância changeLocale(Locale newLocale), assim:

Scanner scanner = new Scanner(System.in);
scanner.setLocale(Locale.US); // Acho que é essa que você quer
// scanner.nextFloat() vai funcionar com 5.2 a partir daqui
1 curtida

Obrigado pela explicação.

Disponha, sempre que precisar!

1 curtida