Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

System.FormatException

Fica aparecendo esse erro na hora de converter a string para um double no exercício da Aula 3, tanto no botão sacar, como no depositar acontece o mesmo erro. Eu ja dei uma olhada no fórum, mas nada que me ajudasse a entender e resolver o problema. A mensagem de erro foi a seguinte: System.FormatException: 'A cadeia de caracteres de entrada não estava em um formato correto.' Segue abaixo meu código:

namespace CaixaEletronicoBanco
{
    public partial class Form1 : Form
    {
        private Conta conta;
        public Form1()
        {
            InitializeComponent();
        }

        private void MostraConta()
        {
            txtNumero.Text = Convert.ToString(this.conta.Numero);
            txtSaldo.Text = Convert.ToString(this.conta.Saldo);
            txtTitular.Text = conta.Titular.Nome;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.conta = new Conta();
            this.conta.Titular = new Cliente();

            this.conta.Titular.Nome = "Gabriel";
            this.conta.Deposita(250.0);
            this.conta.Numero = 1;
            this.conta.Titular.Idade = 18;

            this.MostraConta();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string txtDoValorDoDeposito = textoValor.Text;
            double valorDeposito = Convert.ToDouble(txtDoValorDoDeposito);
            this.conta.Deposita(valorDeposito);

            this.MostraConta();       
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string textoDoValorDoSaque = textoValor.Text;
            double valorSaque = Convert.ToDouble(textoDoValorDoSaque);
            this.conta.Saca(valorSaque);

            this.MostraConta();
        }

Classe Conta:

namespace CaixaEletronicoBanco
{
    class Conta
    {
        public int Numero { get; set; }
        public Cliente Titular { get; set; }
        public double Saldo { get; private set; }

        public void Deposita(double valor)
        {
            if(valor > 0)
            {
                this.Saldo += valor;
            }
        }

        public bool Saca(double valor)
        {
            if(Saldo < 0 || valor > this.Saldo)
            {
                return false;
            }
            else
            {
                if (this.Titular.maiorDeIdade())
                {
                    this.Saldo -= valor + 0.1;
                    return true;
                }
                else
                {
                    if(valor <= 200)
                    {
                        this.Saldo -= valor + 0.1;
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
        }
    }
}

Classe Cliente:

namespace CaixaEletronicoBanco
{
    public class Cliente
    {
        public string Nome;
        public int Idade;
        public string Rg;
        public string Cpf;
        public string Endereco;

        public bool maiorDeIdade()
        {
            if(this.Idade >= 18)
            {
                return true;
            }

            return false;
        }

    }
}
1 resposta
solução!

Cometi o erro mais bizarro da vida, eu não estava colocando valor nenhum na textBox TextoValor por isso não funcionava, estava esquecendo de ser o usuário que vai executar a operação kkkkkkkkkk Acontece, aprendizado sempre!

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