Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

infowagner

Arredondar Valores no DataTable

Recommended Posts

Olá pessoal to com um problema que tá dificil de resolver, tenho uma tabela dentro de um dataset desconectado que funciona como um carrinho de compra tenho um campo onde o usuário insere a porcentagem de desconto só que na tabela preciso valores arredondados com duas casas decimais depois da virgula, vejam o código:

 

CODE
dt.Columns.Add("Quantidade", System.Type.GetType("System.Int32"), "");

dt.Columns.Add("Valor", System.Type.GetType("System.Double"), "");

dt.Columns.Add("Desconto", System.Type.GetType("System.Double"), "");

dt.Columns.Add("CalcDesc", System.Type.GetType("System.Double"),"Valor/100");

dt.Columns.Add("ValorDesc", System.Type.GetType("System.Double"), "Valor-(CalcDesc*Desconto)" );

dt.Columns.Add("ValorDesc2", System.Type.GetType("System.Doble"),"ValorDesc"); // aqui gera 4 casas depois da virgula, preciso duas.

 

já tentei assim, e não funciona:

CODE
dt.Columns.Add("ValorDesc2", System.Type.GetType("System.Decimal"), String.Format("{0:N2}","ValorDesc"));

 

Alguem pode dar uma ajuda.

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

infowagner o que eu vi que esta errado é o tipo que você colocou, você escreveu Doble ou invés de Double.

Eu fiz o seguinte teste e mandei exibir em uma grid. O Seguinte código:

DataTable dt = new DataTable();
		dt.Columns.Add("Quantidade", System.Type.GetType("System.Int32"), ""); 
		dt.Columns.Add("Valor", System.Type.GetType("System.Double"), ""); 
		dt.Columns.Add("Desconto", System.Type.GetType("System.Double"), ""); 
		dt.Columns.Add("CalcDesc", System.Type.GetType("System.Double"), "Valor/100"); 
		dt.Columns.Add("ValorDesc", System.Type.GetType("System.Double"), "Valor-(CalcDesc*Desconto)"); 
		dt.Columns.Add("ValorDesc2", System.Type.GetType("System.Double"), "ValorDesc"); // aqui gera 4 casas depois da virgula, preciso duas.

		DataRow dr;
		dr = dt.NewRow();
		dr["Quantidade"] = "1";
		dr["Valor"] = "2,00";
		dr["Desconto"] = "1,50";
		dt.Rows.Add(dr);


		GridView1.DataSource = dt;
		GridView1.DataBind();

		dt.Dispose();
Não formatei nenhuma campo na grid, deixei a opção Auto-generate fields marcada e a grid exibiu o resultado com dois digitos após a virgula e não quatro. O campo ValorDesc2 ficou 1,97

Só se os dados que você estiver inserindo for diferente, mas de uma olhada e poste aqui novamente.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro quintelab, desculpe foi erro de digitação qdo postei esta como Double mesmo, mas vamos lá. A coluna desconto vem de uma textbox onde o usuario digita a PORCENTAGEM de desconto Ex.: Valor do Produto. 21,28 qtde: 5 Desconto: 35,50% então qdo insiro no datatable: 21,28/100 = 0,2128 *35,50= 7,5544 - 21,28 = 13,7256 é aqui que tá o problema preciso deste valor arredondado = 13,73 * 5 = 68,65 e do jeito que tá gera = 68,628 (isto por iten pois qdo tem + de 20 gera uma # enorme no total do pedido), espero que você me ajude a encontar uma solução, valew.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.