Soma de valores entre duas TextBox em C#

Make.Love

Banido
Viva, pretendo somar dois valores de duas textbox's, a minha duvida é que nao tou a ver como fazer para efectuar mesmo a conta porque se colocar da seguinte forma fica por exemplo.... 100+21=10021


ajuda precisa-se!

Desde ja um grande obrigado :)

Código:
        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            
            this.textBox1.Text = "" + this.facturaActual.PrecoTotal;
            this.textBox3.Text = "" + this.facturaActual.PrecoTotal * 0.21; 
            this.textBox4.Text = "" + this.facturaActual.PrecoTotal + this.textBox3.Text;

        }

vou dar um exemplo pratico:

this.facturaActual.PrecoTotal ,entra com um valor de 100
this.textBox3.Text = "" + this.facturaActual.PrecoTotal * 0.21; , calcula 21% de 100
this.textBox4.Text = "" + this.facturaActual.PrecoTotal + this.textBox3.Text , aqui gostaria que ficasse a soma dos valores 100+21 ( 121)
 
Última edição:
não terás que usar algumas variaveis? sei que no VB podia-se fazer isso sem variaveis usando o método do Val(textbox1)+ Val(textbox2), o C# não terá essa opção?

é que o que tas a fazer é uma simples concatenação de strings, tas a juntar A + B e não a soma-los.
 
é que o que tas a fazer é uma simples concatenação de strings, tas a juntar A + B e não a soma-los.

exacto. Epah isto tem que haver algo bem simples ^^ fogo!

Sou tou a ver algo do género:

Código:
 this.textBox4.Text = "" + ("{0}", this.textBox1.Text + this.textBox3.Text);

PS: entretanto estou a pesquisar mais info! :s
 
Última edição:
vou-te a dizer sinceramente , não conheço quase nada do C#, mas tenta fazer isto ( se possivel) crias duas variaveis, SOMA, X e Y (exemplo).

depois mete algo como isto:

X = textbox1.text;
Y = textbox2.text;
SOMA = X + Y;

não sei se funciona assim mas ja deu para perceber a ideia.
 
ok, após uma pausa para meter as ideias arrumadinhas encontrei a solução:

Código:
            this.textBox1.Text = "" + this.facturaActual.PrecoTotal;
            this.textBox3.Text = "" + this.facturaActual.PrecoTotal * 0.21;
            double tempVal = this.facturaActual.PrecoTotal + this.facturaActual.PrecoTotal * 0.21;
            this.textBox4.Text = ""+ tempVal;
 
assim acho que também dá...

double num1 = double.Parse(txt1.Text);
double num2 = double.Parse(txt2.Text);

double soma = num1+num2;

MessageBox.Show("Soma: " + soma.ToString());
 
Os valores que tu extrais das textbox sao strings, para calcular precisas de numeros, neste caso nao há uma conversao implicita deste tipos de valores (procura descobrir um pouco mais sobre "casts" - por exemplo aqui.

Para já experimenta algo como isto:

Código:
            double tbv1;
            double tbv3;

            tbv1 = Convert.ToDouble(textBox1.Text);
            tbv3 = (Convert.ToDouble(textBox3.Text) * 0.21);

            textBox4.Text = Convert.ToString(tbv1 + tbv3);
 
Os valores que tu extrais das textbox sao strings, para calcular precisas de numeros, neste caso nao há uma conversao implicita deste tipos de valores (procura descobrir um pouco mais sobre "casts" - por exemplo aqui.

Para já experimenta algo como isto:

Código:
            double tbv1;
            double tbv3;

            tbv1 = Convert.ToDouble(textBox1.Text);
            tbv3 = (Convert.ToDouble(textBox3.Text) * 0.21);

            textBox4.Text = Convert.ToString(tbv1 + tbv3);

Exacto.. no caso do código do tópico:

Código:
       private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            
            this.textBox1.Text = this.facturaActual.PrecoTotal.ToString(); //Assim é mais "limpo"
            this.textBox3.Text = (this.facturaActual.PrecoTotal * 0.21).ToString(); 
            this.textBox4.Text =  (this.facturaActual.PrecoTotal * 1.21).ToString(); //Mais legível
//            this.textBox4.Text =  (this.facturaActual.PrecoTotal + Convert.ToDouble(this.textBox3.Text)).ToString();

        }
 
ja agora aproveito para perguntar, no VB tinhamos o metodo do Val(textbox) que automáticamente interpretava o valor das textbox para numeros no C# ou no visual C++ (2005) tambem tem alguma opção semelhante?
 
ja agora aproveito para perguntar, no VB tinhamos o metodo do Val(textbox) que automáticamente interpretava o valor das textbox para numeros no C# ou no visual C++ (2005) tambem tem alguma opção semelhante?

Convert.ToDouble, Convert.ToInt, Double.Parse, Int.Parse, etc...
Depende da precisão que queiras.
 
Back
Topo