2011-12-11 44 views
48

thể trùng lặp:
Number formatting: how to convert 1 to "01", 2 to "02", etc.?Chuyển đổi int (số) thành chuỗi có số 0 đứng đầu? (4 chữ số)

Làm thế nào tôi có thể chuyển đổi int để string sử dụng sơ đồ sau đây?

  • 1 chuyển đổi để 0001
  • 123 chuyển đổi để 0123

Tất nhiên, độ dài của chuỗi là năng động. Đối với mẫu này, nó là:

int length = 4; 

Tôi có thể chuyển đổi như thế nào?

+0

http://stackoverflow.com/questions/4432734/c-sharp-pad-left-to-string, http: // stackoverflow .com/questions/5972949/định dạng số, http://stackoverflow.com/questions/4325267/c-sharp-convert-int-to-string-with-padding-zeros –

Trả lời

78

Sử dụng String.PadLeft như thế này:

var result = input.ToString().PadLeft(length, '0'); 
+0

c = 1 a = "% 03d" % (c) hoạt động hoàn hảo – shiny

+1

Đây không phải là giải pháp tốt. Sử dụng điều này, bạn phải tìm ra chiều dài hiện tại của các con số và thêm số tiền đúng của số không. Ví dụ. 2 số không cho 12 và 1 bằng không cho 123. Sử dụng. ToString ("Dx") là tốt hơn nhiều. – Arrkaye

+1

Điều đó không đúng. PadLeft nhận tổng số chữ cái làm đối số chứ không phải là đối số cần thêm. Vì vậy, "1" .PadLeft (4, '0') là "0001". – Jens

4

val.ToString("".PadLeft(length, '0'))

58

Sử dụng tùy chọn định dạng sẵn cho bạn, sử dụng chuỗi định dạng Decimal. Nó linh hoạt hơn nhiều và đòi hỏi ít hoặc không có bảo trì so với thao tác chuỗi trực tiếp.

Để có được chuỗi đại diện sử dụng ít nhất 4 chữ số:

int length = 4; 
int number = 50; 
string asString = number.ToString("D" + length); //"0050" 
Các vấn đề liên quan