Tôi có một số mà tôi cần phải chuyển đổi thành một chuỗi. Đầu tiên tôi sử dụng cái này:
Key = i.ToString();
Nhưng tôi nhận ra nó được sắp xếp theo một thứ tự lạ và vì vậy tôi cần phải đệm nó bằng số không. Làm thế nào tôi có thể làm điều này?
Tôi có một số mà tôi cần phải chuyển đổi thành một chuỗi. Đầu tiên tôi sử dụng cái này:
Key = i.ToString();
Nhưng tôi nhận ra nó được sắp xếp theo một thứ tự lạ và vì vậy tôi cần phải đệm nó bằng số không. Làm thế nào tôi có thể làm điều này?
Câu trả lời:
Khá đơn giản:
Key = i.ToString("D2");
D
là viết tắt của "số thập phân", 2
cho số chữ số cần in.
string.Format("D2", value)
bạn sẽ nhận được D2
đầu ra. cái này không hoạt động. Chúng ta phải sử dụng "{0:00}"
trong trường hợp này.
string.Format("{0:D2}", value)
thay thế. Chỉ cần nói rằng string.Format("D2", ...)
sẽ không thay thế bất cứ điều gì cho dù bạn không có người giữ chỗ.
value
là một int. Nếu value
là một đôi, chẳng hạn, nó sẽ phải làstring.Format("{0:00}", value)
Xem định dạng chuỗi trong C # để biết một số ví dụ sử dụng String.Format
Trên thực tế là một ví dụ tốt hơn về định dạng int
String.Format("{0:00000}", 15); // "00015"
hoặc sử dụng Nội suy chuỗi :
$"{15:00000}"; // "00015"
Nếu bạn muốn giữ chiều rộng cố định, ví dụ 10 chữ số, hãy làm như thế này
Key = i.ToString("0000000000");
Thay thế bằng nhiều chữ số như bạn muốn.
i = 123
sau đó sẽ dẫn đến Key = "0000000123"
.
Vì chưa ai đề cập đến điều này, nếu bạn đang sử dụng C # phiên bản 6 trở lên (tức là Visual Studio 2015) thì bạn có thể sử dụng phép nội suy chuỗi để đơn giản hóa mã của mình. Vì vậy, thay vì sử dụng string.Format(...)
, bạn chỉ có thể làm điều này:
Key = $"{i:D2}";
sử dụng:
i.ToString("D10")
Xem Int32.ToString (MSDN) và Chuỗi định dạng số chuẩn (MSDN).
Hoặc sử dụng String.PadLeft
. Ví dụ,
int i = 321;
Key = i.ToString().PadLeft(10, '0');
Sẽ dẫn đến 0000000321
. Mặc dù String.PadLeft
sẽ không làm việc cho số âm.
Xem String.PadLeft (MSDN).
Thông thường String.Format ("format", object) thích hợp hơn object.ToString ("format"). Vì thế,
String.Format("{0:00000}", 15);
thích hơn là
Key = i.ToString("000000");
Thử:
Key = i.ToString("000000");
Tuy nhiên, cá nhân tôi sẽ thấy nếu bạn không thể sắp xếp trực tiếp vào số nguyên, thay vì đại diện chuỗi.
Đối với các chuỗi nội suy:
$"Int value: {someInt:D4} or {someInt:0000}. Float: {someFloat: 00.00}"
Ở đây tôi muốn không giới hạn ở 4 chữ số như nếu nó là 1 thì nó sẽ hiển thị là 0001, nếu nó 11 thì nó sẽ hiển thị là 0011..Bowow là mã.
reciptno=1;//Pass only integer.
string formatted = string.Format("{0:0000}", reciptno);
TxtRecNo.Text = formatted;//Output=0001..
Tôi đã triển khai mã này để tạo số tiền nhận.
int num=1;
string number=num.ToString().PadLeft(4, '0')
Đầu ra = "00001"
EDIT: Thay đổi để phù hợp với số lượng PadLeft