Galera, não estou conseguindo entrar com valores float ou double no Netbeans; segue imagem:
desde já agradeço a ajuda
Galera, não estou conseguindo entrar com valores float ou double no Netbeans; segue imagem:
desde já agradeço a ajuda
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.
Pode parecer besteira, mas tenta fechar e abrir novamente o NetBeans. Algumas coisas loucas do Netbeans faz isso acontecer.
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
Obrigado pela explicação.
Disponha, sempre que precisar!