#vb.net #string.format
Вопрос:
У меня есть следующий код, и я не могу правильно его отформатировать. Он игнорирует мои форматы. Например, сОрдерНо-это не 10 нулей, это всего лишь 1 ноль. Что я здесь делаю не так?
sKey = String.Format("{0:D10} {1:00} {2} {3} {4} {5} {6} {7} {8:000.0000} {9:000.0000}",
sOrderNo, sItem, sSpecies, sSpSort, rs.Fields("UsageCode").Value,
rs.Fields("Cure").Value, sGrade, sSurface,
rs.Fields("TkFactor").Value,rs.Fields("WdFactor").Value)
Ответ №1:
сОрдерНо-это не 10 нулей,
Необходимая для этого строка формата D10
-нет 10D
. Простоя: документация подразумевает, что возможно только до D9, но она работает с 10 и даже до 99
Console.WriteLine(string.Format("Hello World {0:D99}", 12345));
Комментарии:
1. {0:D10} также не работает, и {1:D2} или {1:00} не работают для sItem. Я смог получить то, что мне нужно: «{0} {1} и т. Д….», Cint(sOrderNo). toString(«D10»), Cint(sItem). toString(«D2») и т. Д… Просто не понимаю, почему приведенный выше исходный код даже с исправленным D10 не работает.
2. sOrderNo должно быть числом, а не числовой строкой..
3. В моей ссылке «до 99» вы заметите, что я передаю целое число 12345, а не строку «12345». Единственное, что вы можете сделать со строками, — это заполнить их слева или справа пробелами, используя, например
{0:-50}
, или{0:50}
для «шириной до 50», минус/плюс, диктующий выравнивание строки в поле