[RESOLVIDO] Não sei o que to fazendo de errado neste TOTAL

Hei gente.
1º Não sei o que estou fazendo de errado neste total.
2º Queria que ele tivesse 3 casas decimais (0,000).

Por favor me ajudem!!

package exe21;

import java.text.DecimalFormat;
import java.util.Scanner;

/**
*

  • @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");
    

    }
    }

double total = ((qtosLitros / 100.0) * desc);

Depois para ter apenas 3 casa terá que usar um formatador como DecimalFormat

kkk e por quê ta assim:


Foi abastecido com:
Pediu : 10 litros.
Recebeu desconto de: 4% - E vai levar: 0.0 Litros

CONSTRUÍDO COM SUCESSO (tempo total: 11 segundos)

Não mostra o total. Não faz a conta. kkkkk Obrigado.

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
2 curtidas

EBAAAAAA!
Entendi agora.
Te amo staroski.
O B R I G A D A Ç O.

Obs.: Vou postar com essa tal formatação ai sim. Obrigado por isso também.