【发布时间】:2011-08-25 08:45:18
【问题描述】:
我希望绑定到货币 (SqlServer) 实体字段的文本框仅显示两位小数而不是四位。
我使用 DevExpress textEdit 和 CalcEdit 框,显示和编辑格式如下:"#,##0.00#;(#,##0.00#)"; 但我总是得到四位小数(零)。
我在 Janus Grid 中使用相同的格式字符串,值可以正确显示。
任何想法,谢谢。
【问题讨论】:
标签: c# formatting decimal
我希望绑定到货币 (SqlServer) 实体字段的文本框仅显示两位小数而不是四位。
我使用 DevExpress textEdit 和 CalcEdit 框,显示和编辑格式如下:"#,##0.00#;(#,##0.00#)"; 但我总是得到四位小数(零)。
我在 Janus Grid 中使用相同的格式字符串,值可以正确显示。
任何想法,谢谢。
【问题讨论】:
标签: c# formatting decimal
我强烈建议尽可能使用内置格式字符串,例如N2。
string s = number.ToString("N2");
如有疑问,请使用 John Sheehan 的 .NET Format String Quick Reference 备忘单。它包含有关在 .NET 中格式化数字和日期所需的所有信息。
DevExpress 控件通常还要求您指定要格式化的内容(例如数字、日期等):
calcEdit.Properties.DisplayFormat.FormatType = FormatType.Numeric;
calcEdit.Properties.DisplayFormat.FormatString = "N2";
如果未指定格式类型,则不会应用格式字符串。
使用 TextEdit 你应该指定一个掩码。
textEdit.Properties.Mask.MaskType = MaskType.Numeric;
textEdit.Properties.Mask.EditMask = "N2";
【讨论】:
使用这个:
例如,您有一个名为 amount 的变量。然后像这样格式化,
amount.ToString("###,###.00");
它会给你小数点后两位的金额。
希望这会有所帮助。
【讨论】:
试试#,##0.00——你不应该需要结尾的“#”。
【讨论】:
我通常只是在验证后将新的格式化值写回文本框中。因此,如果它是千分之一的小数,那么在经过验证的事件处理程序中,我在将其解析为这样的浮点数后将值写回文本中。 this.textbox1.Text = speed.ToString("N3").
【讨论】: