Символ-заполнитель # обозначает цифровую позицию, иди разряд числа. Этот символ может указываться слева иди справа от десятичной точки либо отдельно. Так, если справа от десятичной точки указывается несколько символов #, то они обо значают количество отображаемых десятичных цифр в дробной части числа. При необходимости форматируемое числовое значение округляется. Когда же символы # указываются слева от десятичной точки, то они обозначают количество отображаемых десятичных цифр в целой части числа. При необходимости форматируемое число вое значение дополняется начальными нулями. Если целая часть числового значения состоит из большего количества цифр, чем количество указываемых символов #, то она отображается полностью, но в любом случае целая часть числового значения не усекается. В отсутствие десятичной точки наличие символа # обусловливает округле ние соответствующего целого значения. А нулевое значение, которое не существенно, например конечный нуль, не отображается. Правда, это обстоятельство несколько усложняет дело, поскольку при указании такого формата, как #.##, вообще ничего не отображается, если форматируемое числовое значение равно нулю. Для вывода нуле вого значения служит рассматриваемый далее символ-заполнитель 0.
Таблица 22.6. Символы-заполнители специального формата числовых данных Символ-заполнитель Назначение # Цифра . Десятичная точка , Разделитель групп разрядов % Процент 0 Используется для дополнения начальными и конечными нулями ; Выделяет разделы, описывающие формат для положительных, отрицательных и нулевых значений Е0 Е+0 Е-0 е0 е+0 е-0 Экспоненциальное представление чисел
Символ-заполнитель 0 обусловливает дополнение форматируемого числового зна чения начальными или конечными нулями, чтобы обеспечить минимально необхо димое количество цифр в строковом представлении данного значения. Этот символ может указываться как слева, как и справа от десятичной точки. Например, следующая строка кода: Console.WriteLine("{0:00##.#00}", 21.3);
выводит такой результат. 0021.300
Значения, состоящие из большего количества цифр, будут полностью отображать ся слева от десятичной точки, а округленные — справа.
При отображении больших числовых значений отдельные группы цифр могут от деляться друг от друга запятыми, для чего достаточно вставить запятую в шаблон, со стоящий из символов #. Например, следующая строка кода: Console.WriteLine("{0:#,###.#}", 3421.3);
выводит такой результат. 3,421.3.
Указывать запятую на каждой позиции совсем не обязательно. Если указать запя тую в шаблоне один раз, то она будет автоматически вставляться в форматируемом числовом значении через каждые три цифры слева от десятичной запятой. Например, следующая строка кода: Console.WriteLine("{0:#,###.#}", 8763421.3);
дает такой результат. 8,763,421.3.
У запятой имеется и другое назначение. Если запятая вставляется непосредственно перед десятичной точкой, то она выполняет роль масштабного коэффициента. Каж дая запятая делит форматируемое числовое значение на 1000. Например, следующая строка кода: Console.WriteLine("Значение в тысячах: {0:#,###,.#}", 8763421.3);
дает такой результат. Значение в тысячах: 8,763.4
Как показывает приведенный выше результат, числовое значение выводится мас штабированным в тысячах.
Помимо символов-заполнителей, пользовательский спецификатор формата может содержать любые другие символы, которые появляются в отформатированной строке без изменения на тех местах, где они указаны в спецификаторе формата. Например, при выполнении следующего фрагмента кода: Console.WriteLine("КПД топлива: (0:##.# миль на галлон }", 21.3);
выводится такой результат. КПД топлива: 21.3 миль на галлон
При необходимости в форматируемой строке можно также указывать такие управ ляющие последовательности, как \t или \n.
Символы-заполнители Е и е обусловливают отображение числовых значений в экс поненциальном представлении. В этом случае после символа Е или е должен быть указан хотя бы один нуль, хотя их может быть и больше. Нули обозначают количество отображаемых десятичных цифр. Дробная часть числового значения округляется в со ответствии с заданным форматом отображения. Если указывается символ Е, то он ото бражается прописной буквой "Е". А если указывается символ е, то он отображается строчной буквой "е". Для того чтобы знак порядка отображался всегда, используются формы Е+ или е+. А для отображения знака порядка только при выводе отрицатель ных значений служат формы Е, е, Е- или е-.
Знак ; служит разделителем в различных форматах вывода положительных, от
рицательных и нулевых значений. Ниже приведена общая форма пользовательского
спецификатора формата, в котором используется знак ;.
положительный