Retornar numero real ao invez de inteiro

Saudações,

Desculpe a dúvida simples, mas estou começando a estudar programação agora e estou com uma dúvida neste algoritmo. A minha ideia é que apresente um resultado com valor real (com decimais).

O exercício basea-se em fazer um programa simples que calcular automatico o estoque media. Quando simulo colocando 4 + 35 = 39 e dividindo por 2, ele trás resultado 19 e não 19,5.

Aonde eu errei?

package secao03;

import java.util.Scanner;

public class Exercicio02 {

public static void main(String[] args) {

  //Variáveis;
  int quantidade_minima, quantidade_maxima;
  float estoque_medio;
  
  //Entrada
  Scanner teclado = new Scanner (System.in);
  
  System.out.println("Informe uma quantidade mínima: ");
  quantidade_minima = teclado.nextInt();
  
  System.out.println("Informe uma quantidade máxima: ");
  quantidade_maxima = teclado.nextInt();
  
  //Processamento;
  estoque_medio = (quantidade_minima + quantidade_maxima) / 2;
  		
  //Saída;
  System.out.println("O estoque médio é: " + estoque_medio);
  
  teclado.close();

  }

}

Desde já agradeço.

No Java, quando você divide números inteiros, o resultado é um número inteiro (19, no seu exemplo).

Uma opção é forçar o resultado à ser decimal colocando o divisor como float:

  estoque_medio = (quantidade_minima + quantidade_maxima) / 2f; // o f força o número a ser float

Outra opção é mudar o tipo de quantidade_minima e quantidade_maxima para float, e mudando a leitura de nextInt() para nextFloat(). O resto deve permanecer igual.

Exemplo rodando: link para clicar.

Abraço.

1 curtida

Entendi perfeitamente, muito obrigado pela ajuda.

Fiz os ajustes e ficou certinho.