c#文本框十进制格式

c#文本框十进制格式,c#,formatting,decimal,C#,Formatting,Decimal,我希望绑定到money(SqlServer)实体字段的文本框只显示两位小数,而不是四位小数 我使用具有以下显示和编辑格式的DevExpresstext编辑和CalcEdit框:“#,##0.00#”(#,###0.00#”)

我希望绑定到money(SqlServer)实体字段的文本框只显示两位小数,而不是四位小数

我使用具有以下显示和编辑格式的DevExpress
text编辑
CalcEdit
框:
“#,##0.00#”(#,###0.00#”)
我在Janus网格中使用相同的格式字符串,这些值可以正确显示

有什么想法吗,谢谢。

试试
#,##0.00
——你不应该需要尾随的“#”。

使用这个:

例如,您有一个名为amount的变量。然后把它格式化成这样

amount.ToString("###,###.00");
它将给出小数点后两位的金额


希望这有帮助。

我强烈建议尽可能使用内置格式字符串,例如
N2

string s = number.ToString("N2");
如有疑问,请使用约翰·希恩的备忘单。它提供了在.NET中格式化数字和日期所需的所有信息

DevXPress控件通常还要求您指定要格式化的内容(例如数字、日期等):

如果未指定格式类型,则不会应用格式字符串

使用TextEdit,您应该指定一个掩码

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

我通常只是在验证后将新的格式化值写回文本框。因此,如果它是小数点到千分之一,那么在验证的事件处理程序中,在将其解析为如下所示的浮点值后,我将该值写回文本中。this.textbox1.Text=speed.ToString(“N3”)。

尝试了此操作,但没有成功。感谢使用设计器,没有办法只得到两个小数。我使用哪个事件设置文本框的文本格式。当我双击网格行(格式良好的数字列)时,我会在带有文本框的窗体上显示相同的数据(在数字文本框中显示尾随的四个零)。请尝试指定掩码。请参阅我的最新答案。如果使用BindingSource在文本编辑中显示数据,请在绑定上指定格式字符串,而不是控件。这是解决我的问题的唯一方法:var currencyBinding=new binding(“text”,entityBindingSource,“Amount”);currencyBinding.Format+=新的ConvertEventHandler(DecimalToCurrencyString);txbAmount.DataBindings.Add(currencyBinding);//谢谢你的建议。在Binding()的构造函数重载中,你可以直接指定格式字符串。这不管用吗?我发现很难相信掩码解决方案不起作用。我的文本框绑定到一个带有数字字段的实体,我是否应该在首次加载数据时格式化文本框,然后在每次文本框值更改时重新格式化?
textEdit.Properties.Mask.MaskType = MaskType.Numeric;
textEdit.Properties.Mask.EditMask = "N2";