#c#
#c#
Вопрос:
Я хочу использовать формат c # для этого:
6 = «000006»
999999 = «999999»
100 = «000100»
-72 = ошибка
1000000 = ошибка
Я пытался использовать String.Формат, но безуспешно.
Ответ №1:
Форматирование не приведет к ошибке, если будет слишком много цифр. Вы можете получить 6-значную строку с заполнением слева только с помощью
string output = number.ToString("000000");
Если вам нужно, чтобы 7-значные строки были недействительными, вам просто нужно это закодировать.
if (number >= 0 and number < 1000000)
{
output = number.ToString("000000")
}
else
{
throw new ArgumentException("number");
}
Чтобы использовать string.Формат, вы бы написали
string output = string.Format("{0:000000}", number);
Комментарии:
1. Можно ли использовать String. Формат?
2. строка. Format() просто вызывает toString() для int, поэтому меньше накладных расходов, если вы используете toString() напрямую.
3. @phoog: если вы уже не используете String. Формат. Я настоятельно предпочитаю String. Format(«{0:ггггММдд}-{1:0000}-{2}», Дата и время. Теперь number, foo) поверх String . Формат(«{0}-{1}-{2}», DateTime.Now.toString(«ггггММдд»), число. toString(«0000»), foo)
4. @Timbo абсолютно. Зачем кому-то делать последнее?
5. @phoog: кто-то мог бы сделать последнее, если бы они небрежно / наивно следовали вашему совету, что форматирование чисел через toString имеет меньше накладных расходов, чем через string . Формат. Я просто указывал, что это верно только при работе с одним объектом.