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

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Marco Antonio Montalvo
07/01/2010 - 17:47 | Informe spam
SoftJaén escribió:
"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





muchas gracias SoftJaén

col.DefaultCellStyle.Format = "N2";



era lo que necesitaba.

saludos!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida