2012-03-06 33 views
12

Tôi có một trường amount là số thập phân trong cơ sở dữ liệu. Tôi cần luôn hiển thị số tiền này với 10 số ở bên trái dấu thập phân và hai số sau.C# Số tiền đệm với số không

Ví dụ:
Amount = 245.00 đó sẽ hiển thị như 0000000245.00 Thêm vào đó, số tiền có thể là hơn 1.000 hoặc 10.000 mà sẽ hiển thị như sau:

0000001245.000000011245.00

Làm thế nào tôi có thể định dạng số tiền luôn luôn có số lượng số 0 thích hợp ở phía bên trái của số thập phân với kích thước số lượng biến đổi?

Trả lời

23

Bạn nên đặt 0 trong chuỗi định dạng của bạn. Một cái gì đó như thế này.

myValue.ToString("0000000000.00"); 

Điều đó sẽ luôn cung cấp cho bạn 10 chữ số ở bên trái dấu thập phân và hai chữ số ở bên phải.

Nếu bạn không muốn hai chữ số ở bên phải ... hãy làm điều này.

myValue.ToString("0000000000.##"); 

Điều này nói rằng nếu chúng tôi có giá trị hiển thị nó; nếu không, hãy bỏ qua nó.

+0

Điều này sẽ làm tròn. –

8

Điều này sẽ giúp ... http://www.csharp-examples.net/string-format-int/

Vì vậy, bạn có thể sử dụng

string.Format("{0:0000000000.00}", 15.25); // "0000000015.25"

+0

Tôi cũng nghĩ điều này, nhưng lại đọc câu hỏi. Các chữ số ở bên phải dấu thập phân phải thay đổi và không phải lúc nào cũng chính xác là hai. – Yuck

+0

@Yuck Đó không phải là cách tôi hiểu nó 'Tôi cần phải luôn hiển thị số tiền này với 10 số ở bên trái của số thập phân và hai sau. '... nó sẽ không hoạt động với số lớn hơn 9999999999, bởi vì sau đó anh ấy sẽ có 11 số ở phía trước :) –

+0

Lưu ý rằng ToString hiệu quả hơn string.Format. Nói cách khác, giả sử 'd' là một biến số thập phân,' d.ToString ("0000000000.00") 'hiệu quả hơn' string.Format ("{0: 0000000000.00}", d) ' – phoog

2

yourDecimalVariable.ToString ("0000000000.00") nên thực hiện thủ thuật.

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