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

[Dúvida] Não sei o que esta dando errado

public class TesteIR {
    public static void main(String[] args) {

        double salario = 3300;


        if (salario <= 1903.98) {
            System.out.println("Voce esta isento!!");
        } else {
            if (salario > 1903.99 && salario < 2826.65) {
                double aliquota = 7.5 / 100;
                double ir = salario * aliquota;
                System.out.println("Sua deduçao de Ir sera R$ " + ir + ".");
            } else {
                if (salario > 2826.66 && salario < 3751.05) {
                    double aliquota = 15 / 100;
                    double ir = salario * aliquota;
                    System.out.println("Sua deduçao de Ir sera R$ " + ir + ".");
                } else {
                    if (salario > 3751.06 && salario < 4664.68) {
                        double aliquota = 22.5 / 100;
                        double ir = salario * aliquota;
                        System.out.println("Sua deduçao de Ir sera R$ " + ir + ".");

                    }

                }
            }
        }
    }

}

Após executar o programa não importa qual seja o salario, acima do valor de isenção, no console o resultado da variavel "ir" sempre consta como "0.0".

2 respostas
solução!

O problema é que você fez

double aliquota = 15 / 100;

Apesar do resultado dessa conta ser 0.15, em Java, quando você divide dois inteiros (igual nesse caso) o retorno é um inteiro, portanto vai pegar apenas a parte inteira de 0.15, que nesse caso é 0.

Se você ajustar para o código abaixo, vai funcionar:

double aliquota = 15.0 / 100;

Muito obrigado Otávio!!