none
Valor Negativo de Moeda em TextBox RRS feed

  • Pergunta

  • Uma aplicação que soma os valores de Um DataGridViewRow

    so que se os valores forem positivos soma blz

    mais quando o valor e negativo

    da erro aqui    Vlor = Convert.ToDecimal(valorComboBox.Text.Replace("R$", ""));

    seguencia nao esta em um formato incorreto

    oque devo fazer?

    desde ja agradeço

    terça-feira, 27 de outubro de 2015 16:17

Respostas

  • Testei aqui e deu certo...veja:

    var climateString = "−2.8";
    
                var fmt = new NumberFormatInfo();
                fmt.NegativeSign = "−";
                var number = decimal.Parse(climateString, fmt);  

    • Marcado como Resposta Marcos SJ terça-feira, 27 de outubro de 2015 17:31
    terça-feira, 27 de outubro de 2015 17:19

Todas as Respostas

  • decimal.Parse(valorComboBox.Text.Replace("R$", ""));

    tente com parse

    terça-feira, 27 de outubro de 2015 16:27
  • Ola Diego

    Esta acontecendo o mesmo erro

    decimal.Parse(valorComboBox.Text.Replace("R$", ""));

    tenho dois valores R$ 1,00 ok

    -R$ 1,00 este da erro

    terça-feira, 27 de outubro de 2015 16:41
  • Testei aqui e deu certo...veja:

    var climateString = "−2.8";
    
                var fmt = new NumberFormatInfo();
                fmt.NegativeSign = "−";
                var number = decimal.Parse(climateString, fmt);  

    • Marcado como Resposta Marcos SJ terça-feira, 27 de outubro de 2015 17:31
    terça-feira, 27 de outubro de 2015 17:19
  • Mais o que vc testou esta com valor monetario vindo de uma combobox?

    vou color o que fiz

     decimal Quant, Vlor = 0, Res, soma = 0;
                    Quant = decimal.Parse(txt_quant.Text);
                    Vlor = decimal.Parse(valorComboBox.Text.Replace("R$", "")); // Aqui so dar erro quando o valor e negativo -R$ 00,000 por exemplo

                        Res = Quant * Vlor;
                        Lb_SubTot.Text = Res.ToString("0.00");

                        foreach (DataGridViewRow dr in itemSupremDataGridView.Rows)
                            soma += Convert.ToDecimal(dr.Cells[5].Value);
                        soma = Res + soma;
                        Lb_VlrTot.Text = soma.ToString("C");

    terça-feira, 27 de outubro de 2015 22:07
  • converta o valor do seu textbox para string primeiro 
    Veja : txtvalor.Text = Convert.ToDouble(txtvalor.Text).ToString("C")

    para somar os valores ele precisa do sinal negativo antes do valor 

    então com isso execute : 

     Dim valor As Double = 0

            For Each linha As DataGridViewRow In DataGridView1.Rows
                valor = valor + linha.Cells(11).Value

            Next

            txttotal.Text = valor

    neste exemplo eu peguei um datagridview1 atribui uma variavel valor para uma linha da row 

    que no meu caso é a o valor de todas as 11 

    e o valor total me retorna somando ou diminuindo conforme o lançamento .

    veja .

    Observe que tenho valores negativos e positivos.


    Atenciosamente Mauricio Perroni

    sábado, 5 de maio de 2018 12:07