Ir ao conteúdo
  • Cadastre-se

Java Erro na leitura e impressao de variaveis do tipo float e double.


Posts recomendados

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)
 

 

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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"));
Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!