3
respostas

Porque ele não mostra o saldo correto? só mostra o saldo da ação.

namespace CaixaEletronico
{
    class ContaPoupanca : Conta
    {
        public override void Saca(double valor)
        {
            this.Saldo = valor -= 0.10;
        }
    }
}
```

cp.Deposita(1000.0); cp.Saca(100.0);

// acredito que se eu deposito 1000 e saco 100 = 899,90

```

3 respostas

Ao que tudo indica ele vai fazer primeiro o cálculo (valor -= 0.10) e depois atribuir ao valor do saldo.

this.Saldo = valor -= 0.10
this.Saldo = (valor = valor - 0.10)
this.Saldo = (valor = 100 - 0.10)
this.Saldo = (valor = 99.90)
this.Saldo = 99.90

Para obter o valor 899.90, acredito que o correto seria:

this.Saldo -= (valor - 0.10)

Está me parecendo que você está com um pouco de falta de atenção e faltando as aulas de matemática. rsrs

this.Saldo -= valor - 0.10;
// que é o mesmo que
this.Saldo = this.Saldo - valor - 0.10;
// aqui, se Saldo = 1000 e valor = 100, vai acontecer o seguinte
// this.Saldo = 1000 - 100 - 0.10
// this.Saldo = 1000 - 99.9
// this.Saldo = 900.1

O problema está no -= colocado no lugar errado e no fato de que na verdade você quer somar valore o 0.10 para ter o resultado 899,9.

O certo seria:

this.Saldo -= valor + 0.10;
// que é o mesmo que
this.Saldo = this.Saldo - valor + 0.10;
// aqui, se Saldo = 1000 e valor = 100, vai acontecer o seguinte
// this.Saldo = 1000 - 100 + 0.10
// this.Saldo = 1000 - 100.10
// this.Saldo = 899.9

namespace CaixaEletronico { class ContaPoupanca : Conta { public override void Saca(double valor) { this.Saldo -= valor + 0.10; } } }

Basta você adicionar o sinal de - antes do sinal de igual e remover esse -= depois de valor e colocar um sinal de + "this.Saldo = valor -= 0.10;" para "this.Saldo -= valor + 0.10;"