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

Resultado.

O meu resultado não corresponde ao mesmo valor do mostrado na resposta. Funciona, mas o resultado continua sendo 1000.

5 respostas

Oi Jessica, tudo bom?

Tente trabalhar com numeros decimais como, por exemplo, 1000.097

Acho que é algum erro em alguma dessas classes. Como:

public class Principal {

    public static void main(String[] args) {
    //    ContaCorrente conta = new ContaCorrente();

        GerenciadorDeImpostoDeRenda gerenciador = new GerenciadorDeImpostoDeRenda();

        SeguroDeVida sv = new SeguroDeVida();
        gerenciador.adiciona(sv);

        ContaCorrente cc = new ContaCorrente();
        cc.deposita(1000);
        gerenciador.adiciona(cc);

        System.out.println(gerenciador.getTotal());
        System.out.printf("o saldo é: %.2f",cc.getSaldo());
    }
}
public class ContaCorrente extends Conta implements Tributavel {

    @Override
    public void atualiza(double taxa) {

    }

    public double calculaTributos(){
        return this.getSaldo()*0.01;
    }
}
abstract class Conta {

    private double saldo;

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }

    void deposita(double valor){
        this.saldo +=valor;
    }

    public double getSaldo() {
        return this.saldo;
    }

    public void saca (double saca){
        this.saldo-=saca;
    }

    public void MetodoQualquer(double valor){
        deposita(valor);
    }

//Se tirarmos o atualiza da Conta, perdemos a garantia de que todo objeto 
//que é uma conta vai ter implementado esse método. Isto é, uma classe que 
    //trabalhe com uma Conta não compilará mais a chamada ao método atualiza    

    public abstract void atualiza (double taxa);
}

Oi Jessica, na sua classe Principal, tente fazer um deposito de um numero decimal, por exemplo:

// resto da classe principal
ContaCorrente cc = new ContaCorrente();
        cc.deposita(1000.9875);

Quando trabalhamos com numeros inteiros, não temos representação decimal para poder editar!

O resultado foi: o saldo é: 1000,99

No caso ele fez um arredondamento para demonstrar o %.2f? toda vez que limitamos as casas decimais faz um arredondamento ou só faz cortar?

Porque eu testei colocando duas casas decimais, e ele repetiu o mesmo valor, só teve efeito quando foi mais de 2 casas decimais.

solução!

A ideia é que quando o valor possui mais casas decimais do que foi especificado, haverá arrendondamento. Caso contrario não haverá mudança na representação pois não ha casas decimais suficiente para realizar alguma.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software