Ir ao conteúdo

Posts recomendados

Postado

Boa tarde galera, estou fazendo um exercício que pede para digitar várias idades

e calcular a média, quando digitado as idades 34, 56, 44, 23, o resultado obtido é

39,00, porém o correto seria 39,25, o programa termina quando é digitado um valor menor que 0

Alguém poderia me ajudar a não arredondar esse valor final?

Scanner leitor = new Scanner(System.in);
		
		int numero, soma = , contador=;
		float result;
		
		while(true){
			
			DecimalFormat df = new DecimalFormat("0.00");
			
			numero = leitor.nextInt();
			
			if(numero>){
				soma += numero;
				contador++;
			}else{
				result = soma/contador;
				System.out.println(df.format(result));
				System.exit();
			}
		}
	}
}

 

Postado

Na sua operação "result = soma/contador;" você tem "float = int/int;"

 

A operação matemática de um int dividido por um int irá resultar sempre em um int arredondado, este resultado será autoencapsulado em um float.

 

Para evitar isto você pode:

 

- mudar os tipos para float

- fazer um cast na operação matemática

  • Curtir 2
Visitante
Este tópico está impedido de receber novas respostas.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!