Erro ao converter para decimal
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:
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á,
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:
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á,
Rachel Andrade
Curtidas 0
Respostas
Thiago Porto
24/06/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:
{
if (textBox1.Text <> '' && textBox2.Text <> '')
{
decimal total = Convert.ToDecimal(textBox1.Text) + Convert.ToDecimal(textBox2.Text);
textBox3.Text = total.ToString();
}
}
é bom fazer um teste assim:
GOSTEI 0
Rachel Andrade
24/06/2013
Obrigada, Thiago.
Será que foi só isso aqui o problema:
Você converteu um por um e eu estava convertendo os dois juntos.
Será que foi só isso aqui o problema:
Convert.ToDecimal(textBox1.Text) + Convert.ToDecimal(textBox2.Text);
Você converteu um por um e eu estava convertendo os dois juntos.
GOSTEI 0
Thiago Porto
24/06/2013
Isso, você estava concatenando o valor dos textbox.
GOSTEI 0
Rachel Andrade
24/06/2013
Muito obrigada, Thiago.
Aproveitei e inseri essa verificação que você sugeriu.
Problema resolvido.
Aproveitei e inseri essa verificação que você sugeriu.
Problema resolvido.
GOSTEI 0
Joel Rodrigues
24/06/2013
Obrigado pelo retorno.
Tópico concluído.
Tópico concluído.
GOSTEI 0
Pjava
24/06/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.
GOSTEI 0