@author Luiz Carlos
*/
public class Exe21 {
public static void main(String[] args) {
System.out.println(“Calcular Desconto dos Combustíveis\n”);
Scanner scan = new Scanner(System.in);
int desc = 0;
String comb = “”;
System.out.println("Posto de Combustível");
System.out.println("A - alcool G - gasolina");
System.out.print("Entre o tipo de combustível: (A/G): ");
String tipo = scan.nextLine();
tipo = tipo.toUpperCase();
if (tipo == "A") {
comb = "Alcool";
} else if (tipo =="G") {
comb = "Gasolina";
}
System.out.print("Quantos Litros de: " + comb + " ?\n");
int qtosLitros = scan.nextInt();
System.out.print("----------------------------------------------------\n");
switch (tipo) {
case "A":
if (qtosLitros <= 20) {
desc = 3;
} else {
desc = 5;
}
break;
case "G":
if (qtosLitros <= 20) {
desc = 4;
} else {
desc = 6;
}
break;
}
double total = ((qtosLitros / 100) * desc);
System.out.println("Foi abastecido com: " + comb);
System.out.println("Pediu : " + qtosLitros + " litros.");
System.out.print("Recebeu desconto de: " + desc + "% - E vai levar: ");
System.out.print(total + " Litros\n\n");
Quando postar código no fórum, sempre formate o mesmo usando o botão de Texto pré-formatado, identificado pelo botão </>.
Ele faz a conta sim e mostra o total.
O problema é que você calculou assim:
double total = ((qtosLitros / 100) * desc);
Está fazendo a divisão por um int e, em Java toda, divisão por um int resulta em outro int, ou seja, está truncando a parte decimal.
Se você fizer assim:
double total = ((qtosLitros / 100.0) * desc);
ou assim:
double total = ((qtosLitros / (double) 100) * desc);
Vai receber esta saída:
Pediu : 10 litros.
Recebeu desconto de: 4% - E vai levar: 0.4 Litros
Aí vai perceber que seu cálculo do desconto também está errado, pois 4% de desconto em 10 litros deveria resultar em 9,6L.
O correto é assim:
double total = qtosLitros - (qtosLitros * desc / 100.0);
Aí a saída será:
Pediu : 10 litros.
Recebeu desconto de: 4% - E vai levar: 9.6 Litros
Mas ainda tem algo muito errado aí.
Se você vai no posto de combustível e ganha um desconto, você vai levar menos ou pagar menos?
No seu exemplo está levando menos, ou seja, está errado.
Creio que sua mensagem deveria ser:
Pediu : 10 litros.
Recebeu desconto de: 4% - E vai pagar: 9.6 Litros