C#文本框内小数点格式化

7
我希望我的文本框与SqlServer实体字段绑定,显示只有两位小数而不是四位小数。
我使用DevExpress的textEdit和CalcEdit框,并使用以下显示和编辑格式:"#,##0.00#;(#,##0.00#)" 但我总是得到四位小数(零)。
我在Janus Grid中使用相同的格式字符串,值可以正确显示。
有什么想法吗,谢谢。
4个回答

7

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

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

当你不确定如何格式化.NET中的数字和日期时,请使用John Sheehan的.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";

1
尝试了这个,但没有成功。谢谢。 - Dohamsg
无法仅使用设计工具获取两个小数位。我应该使用哪个事件来格式化文本框的文本?当我双击网格行(数字列格式正确)时,我会在一个带有文本框的表单上显示相同的数据(在数字文本框中显示四个末尾零)。 - Dohamsg
尝试指定一个掩码。请查看我的更新答案。如果您正在使用BindingSource在文本编辑中显示数据,则应该在绑定上指定格式字符串,而不是控件上。 - bernhof
链接(到John Sheehan的备忘单)已经失效。它要求登录信息,输入后会出现“请求被拒绝。您没有权限访问此页面。”的提示。 - Peter Mortensen
John Sheehan的备忘单也在devcheatsheet.com/cheatsheet/102上,但从那里链接的页面也(实际上)已经失效。 - Peter Mortensen
显示剩余3条评论

5

使用以下方法:

例如您有一个名为amount的变量。然后按照以下格式进行格式化:

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

它将以两位小数的形式给出您的金额。 希望这可以帮到您。

我的文本框与一个带有数字字段的实体绑定,我应该在加载数据时格式化文本框,然后每次文本框值更改时重新格式化吗? - Dohamsg

3
尝试使用#,##0.00——后面的“#”不是必需的。

0

通常在验证过后,我会将新的格式化数值写回文本框中。所以如果是千分位小数,那么在验证事件处理程序中,我会像这样将已解析为浮点数的值写回文本框:this.textbox1.Text = speed.ToString("N3")。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接