Usuário com melhor resposta
Formatação de Valores Monetários...

Pergunta
-
Boa Noite a todos!
Pessoal, estou com um problema na minha aplicação que é o seguinte.
Nesse Data grid eu lanço, Material,quantidade,valor unitário.
o que esta acontecendo e o seguinte, quando eu lanço um valor referente a centavos "Ex: quantidade = 1 - valor Unitario = 0,80" ele multiplica corretamente, porem ele transforma 0,80 em 1,00 real e manda pro banco dessa forma. qual quer valor que seja centavos ele transforma em um 1,00.
alguém sabe como resolver isso, agradeço quem puder me ajudar...Obrigado
Obs: esses valores no banco esta como "Decimal" e no Data Grid estou usando Formatação "C2".
att;
- Editado Fabricio_Canali domingo, 11 de setembro de 2016 21:27
Respostas
-
Bom dia Fabricio_Canali,
Obrigado pela participação.
Verifique se o problema não está ocorrendo nesta linha:
txtSubtotal.Text = Convert.ToInt32(Quantidade * ValorUnitario).ToString();
Ali os campos decimais são convertidos para int. É isso mesmo?
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Fabricio_Canali terça-feira, 13 de setembro de 2016 14:13
Todas as Respostas
-
Como esta campo esta definido em seu banco de dados,
Se a resposta contribuiu com seu aprendizado por favor marque como Útil
Se solucionou seu problema por favor marque como Resposta
Atenção, se seu problema foi resolvido não deixe o post aberto
Visite : www.codigoexpresso.com.br -
Como é que você está adicionando os itens no banco de dados ao clicar em "ADD"? Poste o seu código, por favor..
Abraço!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Boa Tarde Pessoal!
Segue parte do código:
private void btnAdicionarItens_Click(object sender, EventArgs e) { decimal Quantidade; decimal ValorUnitario; Quantidade = Convert.ToDecimal(txtQuantidade.Text); ValorUnitario = Convert.ToDecimal(txtValorUnitario.Text); txtSubtotal.Text = Convert.ToInt32(Quantidade * ValorUnitario).ToString(); // ColSubTotal.DefaultCellStyle.NullValue = Convert.ToDecimal(Quantidade * ValorUnitario); Material InserirMaterial = new Material(); InserirMaterial.chamado = new Chamado(); InserirMaterial.chamado.IDChamado = Convert.ToInt32(txtCodigoMaterial.Text); InserirMaterial.MaterialDescricao = txtDescricaoMaterial.Text; InserirMaterial.Quantidade = Convert.ToInt32(txtQuantidade.Text); InserirMaterial.ValorUnitario = Convert.ToDecimal(txtValorUnitario.Text); InserirMaterial.Subtotal = Convert.ToDecimal(txtSubtotal.Text); dtgMaterial.AllowUserToAddRows = false; MaterialNegocios materialNegocios = new MaterialNegocios(); string retorno = materialNegocios.Inserirmaterial(InserirMaterial); try { int codigoChamado = Convert.ToInt32(retorno); MessageBox.Show("Material adicionado com sucesso...: " + codigoChamado, "Sucesso...", MessageBoxButtons.OK, MessageBoxIcon.Information); PesquisarMaterial(); } catch { MessageBox.Show("Não foi Possivel cadastrar material. Detalhe: ", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult = DialogResult.No; } //LIMPA TODOS OS CAMPOS DAS TEXTEBOX txtDescricaoMaterial.Text = String.Empty; txtQuantidade.Text = String.Empty; txtValorUnitario.Text = String.Empty; txtSubtotal.Text = String.Empty; // dtgMaterial.Rows.Add(0,txtDescricaoMaterial.Text, txtQuantidade.Text, txtValorUnitario.Text);//, txtSubtotal.Text); } private void PesquisarMaterial() { MaterialColecao materialColecao = new MaterialColecao(); MaterialNegocios materialNegocios = new MaterialNegocios(); materialColecao = materialNegocios.ConsultarMaterialPorID(txtCodigoMaterial.Text); dtgMaterial.DataSource = null; dtgMaterial.DataSource = materialColecao; dtgMaterial.Update(); dtgMaterial.Refresh(); }
- Editado Fabricio_Canali segunda-feira, 12 de setembro de 2016 15:56
-
Bom dia Fabricio_Canali,
Obrigado pela participação.
Verifique se o problema não está ocorrendo nesta linha:
txtSubtotal.Text = Convert.ToInt32(Quantidade * ValorUnitario).ToString();
Ali os campos decimais são convertidos para int. É isso mesmo?
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Fabricio_Canali terça-feira, 13 de setembro de 2016 14:13
-
-
-
Bom dia!
Resolvi aqui, alterei no banco de dados "decimal para money" na programação mantive o decimal mesmo e funcionou.
valeu ai pela ajuda.Obrigado.
att;
- Editado Fabricio_Canali terça-feira, 13 de setembro de 2016 14:33