Как отформатировать число в строку с ведущими нулями?
У меня есть число, которое мне нужно преобразовать в строку. Сначала я использовал это:
Key = i.ToString();
но я понимаю, что он сортируется в странном порядке, и поэтому мне нужно заполнить его нулями. Как я мог это сделать?
9 ответов
довольно проста:
Key = i.ToString("D2");
D
означает "десятичное число",2
для количества цифр для печати.
посмотреть форматирование строк в C# для некоторых примеров использования String.Формат
на самом деле лучший пример форматирование int
String.Format("{0:00000}", 15); // "00015"
Если вы хотите сохранить фиксированную ширину, например 10 цифр, сделайте это так
Key = i.ToString("0000000000");
заменить на столько цифр, сколько вам нравится.
i = 123
затем приведет к Key = "0000000123"
.
поскольку никто еще не упоминал об этом, если вы используете C# версии 6 или выше (например, Visual Studio 2015), то вы можете использовать интерполяция строк для упрощения кода. Поэтому вместо использования string.Format(...)
, вы можете просто сделать это:
Key = $"{i:D2}";
использование:
i.ToString("D10")
посмотреть типа int32.Метод toString (MSDN), и Стандартные Строки Числового Формата (MSDN).
или использовать String.PadLeft
. Например,
int i = 321;
Key = i.ToString().PadLeft(10, '0');
в результате 0000000321
. Хотя String.PadLeft
не будет работать для отрицательных чисел.
посмотреть строку.PadLeft (MSDN).
Обычно Строки.Формат ("формат", объект) предпочтительнее объекта.ToString ("формат"). Следовательно,
String.Format("{0:00000}", 15);
предпочтительнее,
Key = i.ToString("000000");
попробуй:
Key = i.ToString("000000");
лично, однако, я бы посмотрел, не можете ли вы Сортировать по целому числу напрямую, а не по строковому представлению.
здесь я хочу не ограничивать в 4-значный, как если 1 он должен показать как 0001,если это 11 она должна показать, как 0011..Ниже приведен код.
reciptno=1;//Pass only integer.
string formatted = string.Format("{0:0000}", reciptno);
TxtRecNo.Text = formatted;//Output=0001..
я реализовал этот код для генерации денежного поступления no.