O meu resultado não corresponde ao mesmo valor do mostrado na resposta. Funciona, mas o resultado continua sendo 1000.
O meu resultado não corresponde ao mesmo valor do mostrado na resposta. Funciona, mas o resultado continua sendo 1000.
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.
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.