Novo exercicio (Resolvido, mas vejam se passam outras formas de fazer também)

2 respostas
R

Pessoal, consegui fazer um outro exercício semelhante ao último que postei aqui no GUJ, dêem uma olhada e comentem, principalmente sobre outras formas de fazê-lo.

Baseando-se na tabela à seguir, desenvolva um código que retorne o valor do IR de um salário de R$4.000,00.

Base de cálculo mensal em R$: Até R$1.058,00;Alíquota %: -;Parcela à deduzir do imposto em R$: -;

Base de cálculo mensal em R$: De 1.058,01 à 2.115,00 ; Alíquota %: 15 ; Parcela à deduzir do imposto em R$: R$158,70;

Base de cálculo mensal em R$: Acima de 2.115,01 ; Alíquota %: 27,5 ;Parcela à deduzir do imposto em R$: R$423,08;

Resolvi assim:

class ImpostoRenda{
public static void main(String[] args){
double x = 4000.0, a = 1058.0, b = 1058.01, c = 2115.0;
if(x <= a){
System.out.println("Salario sem desconto de IR: " +x);
}else
 if(x > a && x >=b && x < c){
x = x * 0.15;
System.out.println("Salario com desconto de 15% de IR: " +x);
}else
 if(x > c){
x = x * 0.275;
System.out.println("Salario com desconto de 27,5% de IR: " +x);
}
}
}

2 Respostas

andbecker

eu mudaria de double pra float, acho mais apropriado, alem disse a variavel b mostra-se inutil, então atribui o valor de c pra b....

class ImpostoRenda {

    public static void main(String[] args) {
        float x = 4000.00f, a = 1058.00f, b = 2115.00f,i;
        if (x <= a) {
            System.out.println("Salario sem desconto de IR: " + x);
        } else if (x > a && x < b) {
            i = x * 0.15f;
            x = x-i;
            System.out.println("Salario com desconto de 15% de IR: " + x + " Desconto: " + i);
        } else if (x > b) {
            i = x * 0.275f;
            x = x-i;
            System.out.println("Salario com desconto de 27,5% de IR: " + x + " Desconto: " + i);
        }
    }
}

ah... e eu criei a variavel i, pra mostrar o valor do imposto separado do valor a receber...

otaviojava

Realmente não existe necessidade de usar o double.
Float: 4 bytes. +/- 3.40282347E+38F (aproximandamente 7 dígitos significativos)

Double: 8 bytes. +/- 1.79769313486231570E+308 (15 dígitos significativos)

Criado 23 de janeiro de 2011
Ultima resposta 23 de jan. de 2011
Respostas 2
Participantes 3