2011-08-25 83 views
6

Quiero mis cuadros de texto que están vinculados a los campos de entidad money (SqlServer), para mostrar solo dos lugares decimales en lugar de cuatro lugares.formato de cuadro de texto C# decimal

utilizo DevExpress textEdit y CalcEdit cajas con el siguiente formato de visualización y edición: "#,##0.00#;(#,##0.00#)"; Pero siempre me dan cuatro cifras decimales (ceros).

Utilizo la misma cadena de formato en Janus Grid, los valores se muestran correctamente.

Cualquier idea, gracias.

+2

no funciona 'N2' para usted? – V4Vendetta

Respuesta

3

Pruebe #,##0.00 - no debería necesitar el "#" final.

4

Use esto:

por ejemplo, usted tiene una variable llamada amount. luego formatéelo de esta manera,

amount.ToString("###,###.00"); 

Le dará la cantidad en dos decimales.

Espero que esto ayude.

+0

Mis cuadros de texto están vinculados a una entidad con campos numéricos, ¿debo formatear los cuadros de texto cuando primero se cargan los datos, y luego volver a formatear cada vez que un valor de cuadro de texto ha cambiado? – Dohamsg

+0

También puedes hacerlo así. Dile si funciona o no? – AlphaMale

5

Recomiendo encarecidamente usar las cadenas de formato integradas siempre que sea posible, como N2.

string s = number.ToString("N2"); 

.NET Format String Quick Reference Chuleta de Uso John Sheehan en caso de duda. Tiene toda la información que necesita sobre el formato de números y fechas en .NET.

controles DevExpress por lo general requieren que especificar, además, va a dar formato (por ejemplo, un número, fecha, etc.):

calcEdit.Properties.DisplayFormat.FormatType = FormatType.Numeric; 
calcEdit.Properties.DisplayFormat.FormatString = "N2"; 

Si no se especifica el tipo de formato, no se aplicará la cadena de formato .

Con TextEdit debe especificar una máscara en su lugar.

textEdit.Properties.Mask.MaskType = MaskType.Numeric; 
textEdit.Properties.Mask.EditMask = "N2"; 
+0

Intenté esto, pero no tuve éxito. Gracias – Dohamsg

+0

No hay forma de obtener solo dos decimales, usando el diseñador. Qué evento grito utilizo para formatear el texto de los cuadros de texto. Cuando hago doble clic en una fila de cuadrícula (columnas bien formateadas), muestro los mismos datos en un formulario con cuadros de texto (mostrando cuatro ceros al final en los cuadros de texto numéricos). – Dohamsg

+0

Intenta especificar una máscara en su lugar. Ver mi respuesta actualizada. Si está utilizando un BindingSource para mostrar datos en las ediciones de texto, especifique la cadena de formato en el enlace en lugar del control. – bernhof

0

por lo general acaba de escribir el nuevo valor con formato de nuevo en el cuadro de texto después de que haya sido validado. Entonces, si es un decimal a las milésimas, entonces en el controlador de eventos validado escribo el valor nuevamente en el texto después de haber sido analizado en un flotador como este. this.textbox1.Text = speed.ToString ("N3").

Cuestiones relacionadas