2011-08-25 181 views
6

我希望我的文本框綁定到金錢(SqlServer)實體字段,只顯示兩位小數而不是四位。c#textbox十進制格式

我使用DevExpress textEditCalcEdit框與以下顯示和編輯格式:"#,##0.00#;(#,##0.00#)";但我總是得到四位小數(零)。

我在Janus Grid中使用相同的格式字符串,值得到正確顯示。

任何想法,謝謝。

+2

沒有'N2'嗎? – V4Vendetta

回答

3

嘗試#,##0.00 - 你不應該需要尾隨的「#」。

4

使用此:

比如你有一個名爲量變量。然後像這樣格式化,

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

它會給你兩位小數的金額。

希望這會有所幫助。

+0

我的文本框綁定到一個帶有數字字段的實體,我應該在首次加載數據時格式化文本框,然後在每次文本框值發生更改時重新格式化? – Dohamsg

+0

你也可以這樣做。告訴它是否有效? – AlphaMale

5

我強烈建議儘可能使用內置的格式字符串,如N2

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

使用約翰希恩的.NET Format String Quick Reference備忘單,如有疑問。它擁有關於在.NET中格式化數字和日期的所有信息。

的DevExpress控件通常需要你還可以指定你是什麼格式(例如,數字,日期等):

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

如果未指定格式類型,格式字符串不會被應用。

使用TextEdit,您應該指定一個Mask。

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

試過這個,但沒有成功。謝謝 – Dohamsg

+0

使用設計器無法獲得只有兩位小數。 我使用哪個事件來格式化文本框的文本。 當我DoubleClick在網格行上(數值欄格式良好)時,我在帶有文本框的窗體上顯示相同的數據(在數字文本框中顯示尾隨四個零)。 – Dohamsg

+0

請嘗試指定一個掩碼。看到我更新的答案。如果您使用BindingSource在文本編輯中顯示數據,請在綁定而不是控件上指定格式字符串。 – bernhof

0

我通常只是在將新的格式化的值寫入文本框後重新進行驗證。因此,如果它的小數點位數在千分之一,那麼在驗證的事件處理函數中,我將它的值寫回到文本中,然後將其解析爲像這樣的浮點數。 this.textbox1.Text = speed.ToString(「N3」)。