Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Valor sempre 0

Esta ocorrendo um problema em que o valorComissao fica sempre 0, alguém sabe dizer o porque?

package exercicioslogica;

import java.util.Scanner;

/*c) Uma empresa paga ao corretor uma comissão calculada de acordo com o valor de
suas vendas. Se o valor da venda de um corretor for maior que R$ 50.000.00 a
comissão será de 12% do valor vendido. Se o valor da venda do corretor estiver entre
R$ 30.000.00 e R$ 50.000.00 a comissão será de 10%. Em qualquer outro caso, a
comissão será de 7%. Escreva um algoritmo que gere um relatório contendo nome,
valor do salário fixo, valor vendido, o valor da comissão e o total a receber no mês do
corretor.*/

public class Corretor {


    public static void main(String[] args) {
        Scanner leia = new Scanner(System.in);

        String nome;
        double salarioFixo;
        double valorVendido;
        double valorComissao;
        double total;


        System.out.println("Nome: ");
        nome = leia.next();

        System.out.println("Salario Fixo: ");
        salarioFixo = leia.nextDouble();

        System.out.println("Valor Vendido: ");
        valorVendido = leia.nextDouble();

        if(valorVendido > 50.000){
            int percentual = 12;
            valorComissao = ((percentual / 100) * valorVendido);
        }
        if(valorVendido > 30.000 && valorVendido <= 50.000){
            int percentual = 10;
            valorComissao = ((percentual / 100) * valorVendido);
        }else{
            int percentual = 7;
            valorComissao = ((percentual / 100) * valorVendido);
        }

        total = salarioFixo + valorComissao;

        System.out.println(nome);
        System.out.println(salarioFixo);
        System.out.println(valorVendido);
        System.out.println(valorComissao);
        System.out.println(total);




    }  
}
5 respostas

Olá Guilherme, tudo bem?

Parece que a lógica está correta. Vc poderia trocar o segundo if por um else-if. Poderia me mostrar como vc está passando os valores para o programa?

Olá Thiago, tudo bem sim e com você? Estou passando pelo método Scanner que foi nomeado como o leia

Opa Gui, dei uma fuçada no seu código e fiz umas alterações e parece que deu certo. Quando vc faz a divisao para obter o percentual o tipo da variavel percentual é um inteiro no caso no seu código ele sempre retorna 0, mesmo a divisao por 100 estando correta pq inteiros nao considera casas decimais.

        if (valorVendido > 50000) {
            double percentual = 12D / 100;
            valorComissao = (percentual * valorVendido);
        } else  if (valorVendido > 30000 && valorVendido <= 50000) {
            double percentual = 10D / 100;
            valorComissao = (percentual * valorVendido);
        } else {
            double percentual = 7D / 100;
            valorComissao = (percentual * valorVendido);
        }

Aqui funcionou, mas oque seriam esses "D"s depois do percentual

solução!

Opa Gui,

Esse D significa que vc diz ao Java para tratar o valor como Double e não como Inteiro (padrão). Existem outras formas tbm como por exemplo:

  • 7L => L = Long
  • 7F => F = Float