У меня есть число, которое мне нужно преобразовать в строку. Сначала я использовал это:
Key = i.ToString();
Но я понимаю, что это сортируется в странном порядке, и поэтому мне нужно проложить его нулями. Как я могу это сделать?
У меня есть число, которое мне нужно преобразовать в строку. Сначала я использовал это:
Key = i.ToString();
Но я понимаю, что это сортируется в странном порядке, и поэтому мне нужно проложить его нулями. Как я могу это сделать?
Скорее просто:
Key = i.ToString("D2");
D
означает "десятичное число", 2
для количества цифр для печати.
Посмотрите форматирование строки в С# для некоторых примеров использования String.Format
На самом деле лучший пример форматирования int
String.Format("{0:00000}", 15); // "00015"
или используйте строковую интерполяцию:
$"{15:00000}"; // "00015"
Если вы хотите сохранить фиксированную ширину, например, 10 цифр, сделайте это так
Key = i.ToString("0000000000");
Замените столько цифр, сколько хотите.
i = 123
приведет к Key = "0000000123"
.
Так как никто еще не упомянул об этом, если вы используете С# версии 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
не работает для отрицательных чисел.
См. String.PadLeft (MSDN).
Обычно String.Format( "format", object) предпочтительнее object.ToString( "format" ). Следовательно,
String.Format("{0:00000}", 15);
предпочтительнее,
Key = i.ToString("000000");
Try:
Key = i.ToString("000000");
Лично, однако, я видел бы, если вы не можете сортировать целое число напрямую, а не строковое представление.
Здесь я хочу, чтобы мой no не ограничивался цифрой 4, как если бы она была 1, она должна отображаться как 0001, если она 11 должна отображаться как 0011..Below - это код.
reciptno=1;//Pass only integer.
string formatted = string.Format("{0:0000}", reciptno);
TxtRecNo.Text = formatted;//Output=0001..
Я выполнил этот код, чтобы создать денежный квитанционный номер.
int num=1;
string number=num.ToString().PadLeft(4, '0')
Выход = "00001"
РЕДАКТИРОВАТЬ: Изменено, чтобы соответствовать сумме PadLeft
Для интерполированных строк:
$"Int value: {someInt:D4} or {someInt:0000}. Float: {someFloat: 00.00}"