Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Glauber Martins Gomes

Erro no código

Recommended Posts

Sou iniciante em java, estou fazendo um exercício sobre média ponderada, o calculo ocorre normalmente sem erros quando eu digito números que não são quebrados, mas quando eu utilizo números fracionados ele apresenta erro, segue o código e o erro apresentado:

 

import java.util.Scanner;

 

 

 

public class Exercicio_03 {

public static void main(String[] args){

 

Scanner input=new Scanner(System.in);

double n1,n2,mp;

System.out.print("Digite a primeira a nota:");

n1 = input.nextDouble();

System.out.println("Digite a segunda nota:");

n2 = input.nextDouble();

mp = n1*2+n2*3/5;

System.out.println("a média ponderada é:"+mp);

 

}

 

 

 

Digite a primeira a nota:

10.4

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.nextDouble(Scanner.java:2413)

at exercicios.Exercicio_03.main(Exercicio_03.java:16)

Java Result: 1

 

 

Alguém pode me ajudar?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando " . ". Use " , ".

 

E para "tratar", caso seja inserido " . ", você pode fazer assim:

public class Exercicio_03 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        try {
            double n1, n2, mp;
            System.out.print("Digite a primeira a nota:");
            n1 = input.nextDouble();
            System.out.println("Digite a segunda nota:");
            n2 = input.nextDouble();
            mp = n1 * 2 + n2 * 3 / 5;
            System.out.println("a média ponderada é:" + mp);
        } catch (InputMismatchException e) {
            System.out.println("Você digitou um carater inválido.");
        }

    }
}

Em caso de exceção, será mostrada a mensagem "você digitou um caracter inválido".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu criei estes códigos, onde ele recebe uma string e troca ponto por vírgula e vice e versa, caso for útil:

	public String campoTrocaVirgPorPonto (String custo){
		String resultado = null;
		
		try {
		String numeroPonto = custo.replaceAll("\\,", ".");  
		Double.parseDouble(numeroPonto);
		resultado = numeroPonto.toString();
		
		} catch (Exception e) {
			if (custo.isEmpty()){
				resultado = "0";
			} else {
				resultado = "erro";
			}
		} 
		
		return resultado;
	}
	
	public String campoTrocaPontoPorVirgula (String trocar){
		String resultado = null;
		
		try {
		String numeroPonto = trocar.replaceAll("\\.", ",");  
		resultado = numeroPonto;
		
		} catch (Exception e) {
			System.out.println(trocar +" "+ resultado);
			if (trocar.isEmpty()){
				resultado = "vazio";
			} else {
				resultado = "erro";
			}
		} 
		
		return resultado;
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.