definir numero de posiciones decimales en DataTable y DataGridView

07/01/2010 - 12:30 por Marco Antonio Montalvo | Informe spam
hola a todos
una consulta: he definido un DataTable con sus respectivas columnas y
una de ellas de tipo decimal como sigue:

columna.DataType = System.Type.GetType("System.Decimal");

Luego voy llenando varias filas del datatable y a medida que inserto una
fila despliego el avance en un DataGridView. El problema que tengo es
que no puedo hacer que la columna de tipo Decimal aparezca siempre con
dos posiciones decimales, por ejemplo si introduzco 14 me despliegue
14.00 y si introduzco 2.3 me despliegue 2.30, etc. Otro detalle, cuando
recupero los datos directamente desde SQL Server siempre me despliega
con 4 decimales en el datagridview, por ej: 2.3000

Como puedo hacer para que me despliegue siempre con 2 decimales?

de antemano muchas gracias
 

Leer las respuestas

#1 SoftJaén
07/01/2010 - 15:41 | Informe spam
"Marco Antonio Montalvo" escribió:

he definido un DataTable con sus respectivas columnas y una de ellas de
tipo decimal como sigue:

columna.DataType = System.Type.GetType("System.Decimal");

Luego voy llenando varias filas del datatable y a medida que inserto una
fila despliego el avance en un DataGridView. El problema que tengo es que
no puedo hacer que la columna de tipo Decimal aparezca siempre con dos
posiciones decimales, por ejemplo si introduzco 14 me despliegue 14.00 y
si introduzco 2.3 me despliegue 2.30, etc.



Hola, Marco Antonio:

Por los ejemplos de números que has indicado, entiendo que tienes el punto
como separador decimal en la configuración regional de Windows. Si he
entendido bien el contenido de tu mensaje, no veo yo donde está el problema,
porque es correcto que si escribes 14 te aparezca 14.00, y si escribe 2.3
que te aparezcan 2.30, es decir, con dos decimales, tal y como así demandas.

No obstante, siempre puedes especificarle un formato numérico a la columna
del control DataGridView, una vez que éste control se encuentre enlazado con
el objeto DataTable:

DataGridViewColumn col = dataGridView1.Columns["Nombre_Columna"];

col.DefaultCellStyle.Format = "N2";

Otro detalle, cuando recupero los datos directamente desde SQL Server
siempre me despliega con 4 decimales en el datagridview, por ej: 2.3000

Como puedo hacer para que me despliegue siempre con 2 decimales?



Para que se "despliegue" siempre con 2 decimales, ya te he comentado lo que
tienes que hacer. Pero si se te "despliega" con 4 decimales, digo yo que
será debido a la Escala que tenga definida la columna en la tabla de la base
de datos de SQL Server. Si el tipo de dato de la columna es Decimal, y tiene
una Escala de 4, los valores de los campos se "desplegará" con 4 decimales.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares