Формат строки в .NET: преобразовать целое число в строку фиксированной ширины?

У меня есть int в .NET / C #, который я хочу преобразовать в специально отформатированную строку.

Если значение равно 1, мне нужна строка быть «001».

10 = «010».

116 = «116».

и т. д.

Я смотрю на форматирование строк, но пока безуспешно. У меня также не будет значений выше 999.

25
задан Peter Mortensen 22 January 2013 в 12:44
поделиться

1 ответ

Если мы хотим использовать его в функции с переменным выходом фиксированной длины, то этот подход

public string ToString(int i, int Digits)
{
 return i.ToString(string.Format("D{0}", Digits));
}

пробеги на 20% быстрее, чем это

return i.ToString().PadLeft(Digits, '0'); 

, но если мы хотим также использовать функцию с веревочным входом (например, число HEX), мы можем использовать этот подход:

public string ToString(string value, int Digits)
 {
 int InsDigits= Digits - value.Length;
 return ((InsDigits> 0) ? new String('0', InsDigits) + value : value);
 }
0
ответ дан 28 November 2019 в 17:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: