Boa noite. O curso é C# II: Orientação a objetos, meu aplicativo esta funcionando parcialmente normal, digo isso prq algo esta me incomodando e não consegui encontrar a solução.
Quando eu passo um valor para o aplicativo depositar na conta, por exemplo, 400. Ele recebe esse valor como STRING TEXTO e converte para DOUBLE
string textoDeposito = textoValor.Text;
double valorDeposito = Convert.ToDouble(textoDeposito);
this.conta.Deposito(valorDeposito);
//MessageBox.Show("Operação realizada com sucesso");
this.MostraConta();
Só que esse valor em DOUBLE não esta indo com casas decimais. Tanto que se eu digitar "100.0" na caixa de texto, ao apertar o botão (tanto de depósito quanto de sacar) ele vai depositar e/ou sacar "1000" e não os 100 reais.
A classe MostraConta();
private void MostraConta()
{
textoNumero.Text = Convert.ToString(this.conta.Numero);
textoSaldo.Text = Convert.ToString(this.conta.Saldo);
textoTitular.Text = conta.Titular.Nome;
}
Abaixo a classe CONTA que faz o cálculo da conta deposito/sacar
namespace banco2
{
public class Conta
{
public Cliente Titular { get; set; }
public double Saldo { get; set; }
public int Numero { get; set; }
// métodos sacar e depositar
public virtual void Sacar (double sacar)
{
this.Saldo -= sacar;
}
public void Deposito (double deposito)
{
this.Saldo += deposito;
}
}
}
Até ai o código funciona perfeitamente, eu queria adicionar ao código agora a classe poupança, que como adiciona +0.10 se a conta for uma poupança, deveria me retornar valores double/quebrados, como 899.9 e não 900 como vem retornando:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace banco2
{
class poupancaConta : Conta
{
public int Tipo;
public override void Sacar(double sacar)
{
if (this.Tipo == 1) {
base.Sacar(sacar+0.10);
} else
{
base.Sacar(sacar);
}
}
}
}
Desde já agradeço!