Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_прог_ОКСМ_ч2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
921.09 Кб
Скачать

Форматирование вывода

Применяется для форматирования данных, выводимых в поток при помощи методов Write() или WriteLine(), в частности, для аккуратного выравнивания данных в таблице (в т.ч. контроль числа выводимых десятичных разрядов). Выполняется с использованием форматирующей строки содержит всю информацию о выводимых элементах текста, а также шаблон для каждой указываемой далее переменной, причем каждый шаблон может содержать спецификацию формата. Например, форматированный вывод аккуратно выровненной таблицы значений функции y от варьируемого аргумента x можно выполнить таким предложением вывода:

Console.WriteLine("{0,4} {1,8:f2}", x, y) ;

которое означает «Взять нулевой выводимый элемент и записать его с выравниванием вправо в четырех столбцах, после чего взять первый выводимый элемент и записать его с выравниванием вправо в следующих восьми столбцах в формате с фиксированной точкой и двумя десятичными знаками». В результате получится красивая ровная таблица:

0 0.00

10 3.16

20 4.47

30 5.48

Форматирующий параметр является первым параметром вызова Write или WriteLine, которая имеет, таким образом, альтернативную форму:

Console.WriteLine("текст{формат0}текст{формат1}текст…"элемент0, элемент1, …);

Элементами вывода могут быть любые переменные С#, для которых может существовать спецификация формата. Спецификации формата формат0, формат1, ... описаны ниже. Текстовые вставки текст не обязательны. В качестве формата может также выступать отдельная символьная строка.

Для правильной работы метод WriteLine должен содержать столько же спецификаций формата, сколько затем указано выводимых элементов. Спецификации формата заключаются в фигурные скобки и нумеруются от ноля. Форматы и элементы должны соответствовать друг другу.

Спецификация формата: {N,M:s}

N — указывает на позицию элемента в списке выводимых переменных после того, как строка формата будет передана в метод Write; позиции элементов нумеруются от 0.

М — задает ширину области, в которую будет помещено форматированное значение. Если М отсутствует или отрицательно, значение будет выровнено влево, иначе — вправо.

s — является необязательной строкой форматирующих кодов, которые используются для управления форматированием чисел, даты и времени, денежных знаков и т. д. Параметр s носит название спецификатора формата. В системе .NET имеются три стандартных типа спецификаторов формата: для чисел, объектов даты/времени и для перечислимых объектов.

Таблица 2.1. Примеры числовых спецификаторов форматов

Спецификатор

Буква

Данные

Пример

Строка

Общий

G

Все (настраивается)

8:G

8:G

__1234.5

____1234

Фиксированная точка

F

Все

8:F2

_1234.50

С возвратом

R

Все

8:R2

1234.5

Число

N

Все

8:N1

1,2345.6

Выражение со степенью

Е

Все

14:E6

_1.234500E+003

Десятичное выражение

D

Только целые

8:D

00001234

Денежные единицы

С

Все

10:С

_$1,234.50

Проценты

Р

Все

0:P

89.00%

Шестнадцатеричные числа

X

Только целые

8X

00089AF3

Спецификатор G при использовании его с числами обладает наибольшей гибкостью. Он подстраивается к типу получаемого им значения и не принимает в расчет спецификаторы точности. Им удобно пользоваться, если требуется вставлять числа в текст. Для таблиц он не так удобен. Для того чтобы выровнять числа и десятичные точки, следует использовать F или даже R. Спецификатор R формирует строку примерно так же, как F или Е, но имеет то дополнительное преимущество, что формируемая им строка при вводе может быть преобразована в точности в то число, из которого она получена, поэтому он удобен для сериализации. Спецификатор N удобен для представления больших чисел, потому что он делит число на группы из трех цифр, хотя во многих странах вставляемую им запятую приходится преобразовывать в пробел (см. ниже). Спецификатор Е также удобен для представления больших чисел, a D полезен в тех случаях, когда во всех числах должно быть одно и тоже число цифр, как, например, в банковских счетах.

Область использования спецификатора денежных единиц очевидна, однако может возникнуть необходимость в его дополнительной настройке. Спецификатор Р может привести к ошибке, так сначала он умножает значение на 100. Спецификатор X предназначен для представления шестнадцатеричных чисел и часто используется с фиксированным числом цифр, когда слева вставляются лидирующие ноли.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]