2013-09-26 166 views
14

Tôi muốn có các số có số chữ số cố định.Cách thay đổi từ 1 đến 00001?

dụ: 00001, 00.198, 48.484

tôi có thể làm như thế này:

string value; 
    if (number < 10) 
     value = "0000" + number.ToString(); 
    else if (number < 100) 
     value = "000" + number.ToString(); 
    else if (number<1000) 
    ... 

Nhưng đây là một chút kỳ quặc. Có chức năng tích hợp nào cho mục đích của tôi không?

+1

Ohh, Có bao nhiêu giải pháp và tôi đang ở một góc của thế giới !! – user2799350

Trả lời

21

Vâng, đó là:

string value = String.Format("{0:D5}", number); 
3
string value = number.ToString("00000"); 
-2

Ngoài String.Format, Bạn cũng có thể sử dụng String.PadLeft

value = number.ToString().PadLeft(5, '0'); 
+1

Nó đang hoạt động, có gì sai với -1? – user2799350

+2

Tại sao gọi 2 phương pháp khi vấn đề của bạn có thể được giải quyết bằng 1 cuộc gọi phương thức ?! – Abbas

4

Bạn nên sử dụng phương pháp ToString() với các định dạng tùy chỉnh - see the docs. Cụ thể là thông số số 0.

Thay thế số không bằng chữ số tương ứng nếu có; nếu không, số không xuất hiện trong chuỗi kết quả.

ví dụ:

value = number.Tostring("00000"); 
19

Theo tài liệu tham khảo MS: http://msdn.microsoft.com/en-us/library/dd260048.aspx

Bạn có thể pad một số nguyên với số không hàng đầu bằng cách sử dụng "D" standard số chuỗi định dạng cùng với một độ chính xác. Bạn có thể đệm cả số nguyên và số dấu phẩy động với số 0 đứng đầu bằng cách sử dụng chuỗi định dạng số tùy chỉnh .

Vì vậy:

Để hiển thị các số nguyên như một giá trị thập phân, gọi ToString của nó (String) phương pháp, và vượt qua chuỗi "Dn" làm giá trị của tham số định dạng, trong đó n đại diện cho độ dài tối thiểu của chuỗi.

Code:

string value = number.ToString("D5"); 

NET fiddle: http://dotnetfiddle.net/0U9A6N

3

Bạn có thể làm theo cách này:

number.ToString("00000") 
2

Nếu bạn muốn quay trở lại 5 số chữ số, bạn nên sử dụng số PadLeft() function;

int Value = 101; 
char pad = '0'; 
String sValue = Value.ToString(); 

sValue = sValue.s.PadLeft(5, char) 

Trong trường hợp này, bạn không phải kiểm tra có thêm 1, 2 hoặc 3 số không, nó sẽ tự động thêm số lượng cần thiết để tạo số có 5 chữ số.

1
int input_number = Convert.ToInt32(txtinput.Text); 
string number_value = input_number.ToString("00000"); 

Tôi hy vọng nó sẽ giải quyết được vấn đề của bạn. Nó làm việc tốt cho tôi trong dự án trước đây của tôi. Kiểm tra mã này trong quá trình phát triển của bạn. Nó phải được làm việc đúng cách mà không nghi ngờ gì.