Array
(
)

Erro ao converter para decimal

Rachel Andrade
   - 24 jun 2013

Olá, gente.
Tenho três textbox e quero que quando o usuário for digitando nos dois primeiros, já vá atualizando o terceiro com a soma desses dois.
No evento TextChanged dos dois primeiros eu coloquei assim:
#Código

private void textBox1_TextChanged(object sender, EventArgs e)
{
    decimal total = Convert.ToDecimal(textBox1.Text + textBox2.Text);
    textBox3.Text = total.ToString();
}

private void textBox2_TextChanged(object sender, EventArgs e)
{
    decimal total = Convert.ToDecimal(textBox1.Text + textBox2.Text);
    textBox3.Text = total.ToString();
}

Só que ao invés de somar como número, está juntando o texto do primeiro com o segundo. Tipo: 1+1=11. Mesmo eu convertendo para decimal, como podem ver.
Tem como corrigir esse problema e somar o conteúdo dos textbox como número mesmo?
Obrigada desde já,

Thiagoporto
   - 24 jun 2013

private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text <> '' && textBox2.Text <> '')
{
decimal total = Convert.ToDecimal(textBox1.Text) + Convert.ToDecimal(textBox2.Text);
textBox3.Text = total.ToString();
}
}

é bom fazer um teste assim:

0
|
0

Rachel Andrade
   - 24 jun 2013

Obrigada, Thiago.
Será que foi só isso aqui o problema:
#Código

Convert.ToDecimal(textBox1.Text) + Convert.ToDecimal(textBox2.Text);

Você converteu um por um e eu estava convertendo os dois juntos.

0
|
0

Thiagoporto
   - 24 jun 2013

Isso, você estava concatenando o valor dos textbox.

0
|
0

Rachel Andrade
   - 24 jun 2013

Muito obrigada, Thiago.
Aproveitei e inseri essa verificação que você sugeriu.
Problema resolvido.

0
|
0

Joel Rodrigues
   - 24 jun 2013

Obrigado pelo retorno.
Tópico concluído.

0
|
0

Pjava
   - 24 jun 2013

Você até poderia converter os dois de uma vez, acontece que você estava concatenando as string que vinham dos textbox. Até a conversão dos valores, elas são string e o sinal + entre duas strings concatena e não soma. O que o thiago sugeriu é que você testasse primeiro para ver se há ou não valores e depois partiu para a conversão(valores válidos), nesse caso fez um a um, devido os texbox te retornarem string. Sempre que formos trabalhar com campos assim, é sempre bom antes de qualquer operação, fazermos um teste se há ou não valores a serem operados, para evitar NullException e outros inconvenientes.

0
|
0