2011-08-25 83 views
6

Tôi muốn các hộp văn bản được gắn với các trường thực thể tiền (SqlServer), chỉ hiển thị hai chữ số thập phân thay vì bốn vị trí.C# textbox định dạng thập phân

Tôi sử dụng DevExpress textEditCalcEdit hộp có định dạng hiển thị và chỉnh sửa sau: "#,##0.00#;(#,##0.00#)"; Nhưng tôi luôn nhận được bốn chữ số thập phân (số không).

Tôi sử dụng cùng một chuỗi định dạng trong Janus Grid, các giá trị hiển thị chính xác.

Bất kỳ ý tưởng nào, cảm ơn.

+2

không phải 'N2' phù hợp với bạn? – V4Vendetta

Trả lời

3

Hãy thử #,##0.00 - bạn không cần dấu "#".

4

Sử dụng tính năng này:

ví dụ: bạn có số tiền có tên biến. sau đó định dạng nó như thế này,

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

Nó sẽ cung cấp cho bạn số lượng ở hai chữ số thập phân.

Hy vọng điều này sẽ hữu ích.

+0

Hộp văn bản của tôi được liên kết với một thực thể có trường số, tôi có nên định dạng hộp văn bản khi dữ liệu đầu tiên được tải, sau đó định dạng lại mỗi lần giá trị hộp văn bản đã thay đổi không? – Dohamsg

+0

Bạn cũng có thể làm như vậy. Cho dù nó hoạt động hay không? – AlphaMale

5

Tôi thực sự khuyên bạn nên sử dụng các chuỗi định dạng dựng sẵn bất cứ khi nào có thể, chẳng hạn như N2.

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

Sử dụng John Sheehan .NET Format String Quick Reference Cheat Sheet khi nghi ngờ. Nó có tất cả thông tin bạn cần về định dạng số và ngày trong .NET.

DevExpress điều khiển thường đòi hỏi bạn cũng phải xác định những gì bạn đang định dạng (ví dụ như một số, ngày, vv):

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

Nếu loại định dạng không được xác định, chuỗi định dạng sẽ không được áp dụng .

Với TextEdit, bạn nên chỉ định Mặt nạ thay thế.

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

Đã thử điều này, nhưng không thành công. Cảm ơn – Dohamsg

+0

Không có cách nào để chỉ nhận được hai số thập phân, sử dụng trình thiết kế. Tôi muốn sử dụng sự kiện nào để định dạng văn bản của hộp văn bản. Khi tôi DoubleClick trên một hàng lưới (các cột số được định dạng tốt), tôi hiển thị cùng một dữ liệu trên biểu mẫu có hộp văn bản (hiển thị dấu bốn số 0 trong hộp văn bản số). – Dohamsg

+0

Hãy thử chỉ định mặt nạ thay thế. Xem câu trả lời cập nhật của tôi. Nếu bạn đang sử dụng BindingSource để hiển thị dữ liệu trong các chỉnh sửa văn bản, hãy chỉ định chuỗi định dạng trên liên kết thay vì điều khiển. – bernhof

0

Tôi thường chỉ ghi lại giá trị được định dạng mới vào hộp văn bản sau khi đã được xác thực. Vì vậy, nếu một số thập phân của nó đến số nghìn sau đó trong trình xử lý sự kiện được xác thực, tôi viết giá trị trở lại văn bản sau khi nó được phân tích cú pháp thành một phao như thế này. this.textbox1.Text = speed.ToString ("N3").

Các vấn đề liên quan