У меня есть номер, который мне нужно преобразовать в строку. Сначала я использовал это:
Key = i.ToString();
Но я понимаю, что это сортируется в странном порядке, и поэтому мне нужно заполнить его нулями. Как я мог это сделать?
У меня есть номер, который мне нужно преобразовать в строку. Сначала я использовал это:
Key = i.ToString();
Но я понимаю, что это сортируется в странном порядке, и поэтому мне нужно заполнить его нулями. Как я мог это сделать?
Ответы:
Скорее просто:
Key = i.ToString("D2");
D
обозначает «десятичное число», 2
количество цифр для печати.
string.Format("D2", value)
вы получите D2
в выводе. это не работает Мы должны использовать "{0:00}"
в этом случае.
string.Format("{0:D2}", value)
вместо этого. Просто сказать string.Format("D2", ...)
ничего не заменит, несмотря на то, что у вас нет заполнителя.
value
int. value
Например, если это двойное число, оно должно бытьstring.Format("{0:00}", value)
Посмотрите форматирование строки в C # для некоторых примеров использования String.Format
На самом деле лучший пример форматирования int
String.Format("{0:00000}", 15); // "00015"
или используйте строковую интерполяцию :
$"{15:00000}"; // "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
не будет работать для отрицательных чисел.
См. String.PadLeft (MSDN).
Обычно String.Format («формат», объект) предпочтительнее, чем object.ToString («формат»). Следовательно,
String.Format("{0:00000}", 15);
предпочтительнее,
Key = i.ToString("000000");
Пытаться:
Key = i.ToString("000000");
Лично я бы посмотрел, если вы не можете сортировать по целому числу напрямую, а не по строковому представлению.
Для интерполированных строк:
$"Int value: {someInt:D4} or {someInt:0000}. Float: {someFloat: 00.00}"
Здесь я хочу, чтобы мое no ограничивалось четырьмя цифрами, например, если оно равно 1, оно должно отображаться как 0001, если оно 11, оно должно отображаться как 0011. Ниже приведен код.
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