Ir ao conteúdo

Posts recomendados

Postado

gente estou começando agora a aprender java e esta dando esse erro no meu codigo de teste de impressao e leitura de tipos de variavieis:

 

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextFloat(Scanner.java:2345)
    at main.Main.main(Main.java:40)
C:\Users\aluno\AppData\Local\NetBeans\Cache\13\executor-snippets\run.xml:111: The following error occurred while executing this line:

package main;

import java.util.Scanner;

public class Main{
    
    public static void main(String[] args){
        
        // variaveis do tipo inteiro
        byte num1; // variavel do tipo inteiro.           
        short num2;  // variavel do tipo inteiro maior que o tipo byte.
        int num3;  // variavel do tipo inteiro maior que o tipo byte e short.
        long num4;  // variavel do tipo inteiro maior que o tipo byte,short e int.
 
        // variaveis do tipo caractere.   
        char carac;
        
        // variaveis do tipo real;
        float num5; // variavel do tipo real.  
        double num6; // variavel do tipo real maior que o tipo float.
        
        Scanner read = new Scanner(System.in);  //objeto para leitura do teclado.
        
        System.out.println("Digite  1 numero inteiro: ");
        num1 =  read.nextByte();
        
        System.out.println("Digite  2 numero inteiro: ");
        num2 =  read.nextShort();
        
        System.out.println("Digite  3 numero inteiro: ");
        num3 = read.nextInt();
        
        System.out.println("Digite  4 numero inteiro: ");
        num4 = read.nextLong();
        
        System.out.println("Digite um Caractere: ");
        carac = read.next().charAt(0);
        
        System.out.println("digite o 1 numero real: ");
        num5 = read.nextFloat();
        
        System.out.println("digite o 2 numero real: ");
        num6 = read.nextDouble();
        
        System.out.println("o numero 1 e: "+ num1);
        System.out.println("o numero 2 e: "+ num2);
        System.out.println("o numero 3 e: "+ num3);
        System.out.println("o numero 4 e: "+ num4);
        System.out.println("o caractere digitado e: "+ carac);
        System.out.println("o numero 5 e: "+ num5);
        System.out.println("o numero 6 e: "+ num6);
        
        
        
        
        
        
        // System.out.println(num1);
        // System.out.println(num2);
        // System.out.println(num3);
        // System.out.println(num4);
        // System.out.println(carac);
        // System.out.println(num5);
        // System.out.printf("o numero e %.2f\n",num6);
        // System.out.format("o numero e %.2f\n",num5);
    }
}


C:\Users\aluno\AppData\Local\NetBeans\Cache\13\executor-snippets\run.xml:94: Java returned: 1
BUILD FAILED (total time: 12 seconds)
 

 

Postado
9 minutos atrás, AdrianoSiqueira disse:

A classe Scanner é sensível ao Locale da máquina, se seu sistema operacional está em português, a leitura de números decimais deve ser feita com vírgula, caso contrário com ponto.

como corrigir isso ? essa questão do Locale.

Postado

Não é uma questão de correção, mas se você quer padronizar o formato de entrada independentemente do idioma, você pode definir o Locale padrão da JVM.

 

Assim:

// Definir para o português brasileiro (usa vírgula)
Locale.setDefault(new Locale("pt", "BR"));

// Definir para o inglês americano (usa ponto)
Locale.setDefault(new Locale("en", "US"));

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...