Форматирующие строки. Пользовательский формат числовых данных. Встроенные форматы числовых данных

Форматирующие строки

Если вы хотите, чтобы разрабатываемые классы были дружественными к пользователю, они должны предлагать средства для отображения своих строковых представлений в любом из форматов, которые могут понадобиться пользователю. В исполняющей среде.NET определен стандартный способ достижения этого - интерфейс IFormattable. Описание способа добавления этого важного свойства к пользовательским классам и структурам и представляет собой тему настоящей статьи.

Примечания по управлению пространством

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

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

Начнем с рассмотрения того, что происходит, когда форматная строка применяется к примитивному типу, а отсюда станет ясно, как следует включать спецификаторы формата для пользовательских классов и структур:

Decimal d = 12.05667m; int i = 5; Console.WriteLine("Значение переменной d = {0:C}, а i = {1}",d,i);

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

Строка формата состоит из нуля или более нормальных символов и директив преобразования. Каждая директива преобразования начинается с знака% и заменяется одним параметром. Типы директив форматирования. Любая директива по форматированию дополнительно может иметь четыре типа флага. Флаги для выравнивания и заполнения, флаги для длины, флаги для точности и флаги для модификации.

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

    Количество символов, которое займет представление элемента, снабженное префиксом-запятой. Отрицательное число указывает, что элемент должен быть выровнен по левой границе, а положительное - по правой. Если элемент на самом деле занимает больше символов, чем ему отведено форматом, он отображается полностью.

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

    В открывшемся списке выберите нужную папку и щелкните на ней мышью. В строке Имя файла удалите имя и впишите новое имя файла. При повторном сохранении файла. Для создания и редактирования документа «Обычный режим» предоставляет самый «большой» экран и отображает форматирование символов и абзацев. Если вы захотите отобразить специальные символы форматирования, то в обычном режиме их также можно увидеть.

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

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

Спецификаторы формата для чисел
Спецификатор Применяется к Значение Пример
C Числовым типам Символ местной валюты $835.50 (США)
£835.50 (Великобритания) 835.50р.(Россия)
D Только к целочисленным типам Обычное целое 835
E Числовым типам Экспоненциальная нотация 8.35Е+002
F Числовым типам С фиксированной десятичной точкой 835.50
G Числовым типам Обычные числа 835.5
N Числовым типам Формат чисел, принятый в данной местности 4,384.50 (Великобритания/США)
4 384,50 (континентальная Европа)
P Числовым типам Процентная нотация 835,000.00%
X Только к целочисленным типам Шестнадцатеричный формат 1a1f

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

Удобнее всего работать в режиме «Разметки страницы». В этом режиме видно, как текст расположен относительно границ страницы, когда начинается новая страница, и пользователь работает с «привычным» листом формата А4, только расположенном на экране, а вместо ручки – клавиатура.

Для смены режима отображения проделайте. Меню Вид ® выберите нужный режим. При наборе текста в какой-то момент текст перестает умещаться на экране и верхняя часть страницы перемещается вверх, за экран. При работе с документом можно задать масштаб отображения, то есть «приблизить» документ к себе или «отдалить».

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

Помимо числовых значений, форматированию нередко подлежит и другой тип данных: DateTime. Это структура, представляющая дату и время. Значения даты и времени могут отображаться самыми разными способами.

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

Щелкните мышью на стрелочке в пиктограмме на панели инструментов «Форматирование». В появившемся списке выберите нужный масштаб. Диалоговое окно Параметры страницы, которое можно вызвать, выбрав из меню Файл команду Параметры страницы или щелкнув два раза в области линейки, позволяет задавать поля абзаца и страницы. Введите значения верхнего, нижнего, левого и правого полей, чтобы текст не выходил за их границы.

Вкладка «Поля» позволяет задать размеры полей от края страницы до границ текста. Вкладка «Размер» – ориентацию страницы. Поле переплета - это область страницы, которую можно использовать для подшивки страницы в дело или для переплета нескольких страниц. Если установить величину переплета, то все другие размеры будут смещены в правую часть страницы.

Спецификаторы формата для дат
Спецификатор Формат
D Дата в длинной форме
d Дата в краткой форме
F Дата и время в длинной форме
f Дата и время в краткой форме
G Дата - в краткой форме, время - в длинной
g Дата и время - в краткой форме
М Месяц и день
m То же, что и М
O Формат даты и времени, включая часовой пояс. Строка, составленная в формате О, может быть преобразована обратно в эквивалентную форму вывода даты и времени. Это так называемый "круговой" формат
R Дата и время в стандартной форме по Гринвичу
s Сортируемый формат представления даты и времени
T Время в длинной форме
t Время в краткой форме
U Длинная форма универсального представления даты и времени; время отображается как универсальное синхронизированное время (UTC)
u Краткая форма универсального представления даты и времени
Y Месяц и год

В приведенном ниже примере программы демонстрируется применение спецификаторов формата даты и времени.

This example formats double to string with fixed number of decimal places . For two decimal places use pattern „0.00 “. If a float number has less decimal places, the rest digits on the right will be zeroes. If it has more decimal places, the number will be rounded.


// just two decimal places String .Format("{0:0.00}" , 123.4567); // "123.46" String .Format("{0:0.00}" , 123.4); // "123.40" String .Format("{0:0.00}" , 123.0); // "123.00"

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

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

Next example formats double to string with floating number of decimal places . E.g. for maximal two decimal places use pattern „0.## “.


// max. two decimal places String .Format("{0:0.##}" , 123.4567); // "123.46" String .Format("{0:0.##}" , 123.4); // "123.4" String .Format("{0:0.##}" , 123.0); // "123"

Digits before decimal point

If you want a float number to have any minimal number of digits before decimal point use N-times zero before decimal point. E.g. pattern „00.0 “ formats a float number to string with at least two digits before decimal point and one digit after that.

Чтобы выйти из режима предварительного просмотра и вернуться в предыдущий режим, нажмите кнопку Закрыть. Абзац - это текст любого объема, находящийся между двумя маркерами конца абзаца. Для установки границ абзаца справа и слева, а также абзацного отступа надо на координатной линейке выбрать мышью соответствующую пиктограмму и отбуксировать в нужное положение.

Если Вы решили, что на этом ваша работа закончена, то вы ошибаетесь, очень часто нам необходимо редактировать ранее созданные документы; вам нужно дописать в конец документа еще один абзац следующего содержания. При наборе длинного документа текст автоматически разбивается на страницы. Наберите недостающий абзац в конец документа.


// at least two digits before decimal point String .Format("{0:00.0}" , 123.4567); // "123.5" String .Format("{0:00.0}" , 23.4567); // "23.5" String .Format("{0:00.0}" , 3.4567); // "03.5" String .Format("{0:00.0}" , -3.4567); // "-03.5"

Thousands separator

To format double to string with use of thousands separator use zero and comma separator before an usual float formatting pattern, e.g. pattern „0,0.0 “ formats the number to use thousands separators and to have one decimal place.


String .Format("{0:0,0.0}" , 12345.67); // "12,345.7" String .Format("{0:0,0}" , 12345.67); // "12,346"

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

Обычно при наборе большинства текстов используется шрифт размером 12 пунктов, который считается стандартным и легко читаемым. Чтобы изменить название, размер или начертание шрифта выделенного текста. Щелкните мышью на стрелочке в пиктограмме. В появившемся списке выберите нужный шрифт.

Zero

Float numbers between zero and one can be formatted in two ways, with or without leading zero before decimal point. To format number without a leading zero use # before point. For example „#.0 “ formats number to have one decimal place and zero to N digits before decimal point (e.g. „.5“ or „123.5“).

Following code shows how can be formatted a zero (of double type).


String .Format("{0:0.0}" , 0.0); // "0.0" String .Format("{0:0.#}" , 0.0); // "0" String .Format("{0:#.0}" , 0.0); // ".0" String .Format("{0:#.#}" , 0.0); // ""

Выберите нужный размер шрифта. – полужирное начертание, – курсивное начертание, – курсивное начертание. Вместо панели инструментов, для задания форматов символов можно использовать диалоговое окно Шрифт. Отобразить диалоговое окно Шрифт можно также, щелкнув правой кнопкой мыши выделенный текст и выбрав из контекстного меню команду Шрифт.

В диалоговом окне Шрифт можно не только задать форматы символов, но также просмотреть, как будет выглядеть выбранный вами шрифт в области предварительного просмотра Образец. Поэтому можно выбрать различные названия, размеры и начертания шрифтов и, не закрывая диалоговое окно, посмотреть результаты сделанного выбора, чтобы потом использовать нужный шрифт в своем тексте. Если образец текста соответствует вашим требованиям, то щелкните ОК, чтобы применить данный шрифт к выделенному фрагменту.

Align numbers with spaces

To align float number to the right use comma „, “ option before the colon. Type comma followed by a number of spaces, e.g. „0,10:0.0 “ (this can be used only in String.Format method, not in double.ToString method). To align numbers to the left use negative number of spaces.


String .Format("{0,10:0.0}" , 123.4567); // " 123.5" String .Format("{0,-10:0.0}" , 123.4567); // "123.5 " String .Format("{0,10:0.0}" , -123.4567); // " -123.5" String .Format("{0,-10:0.0}" , -123.4567); // "-123.5 "

Выделите фрагмент текста, для которого нужно изменить шрифтовое оформление. В появившемся диалоговом окне выберите нужные параметры. Иногда в тексте используются символы, которых нет на клавиатуре. Символ – это специальный знак, которого может не быть на клавиатуре.

Для вставки спецсимвола в текст. Поставьте курсор в место вставки символа. Вставка ® Символ ® Выберите нужный символ ® Вставить ® Закрыть. Если вы не видите в таблице тот символ, который нужно вставить в документ, то выберите в раскрывающемся списке Шрифт другой шрифт. В состав многих шрифтов входят особые символы, из которых можно выбрать тот, который подойдет для вашей задачи.

Custom formatting for negative numbers and zero

If you need to use custom format for negative float numbers or zero, use semicolon separator ; “ to split pattern to three sections . The first section formats positive numbers, the second section formats negative numbers and the third section formats zero. If you omit the last section, zero will be formatted using the first section.


String .Format("{0:0.00;minus 0.00;zero}" , 123.4567); // "123.46" String .Format("{0:0.00;minus 0.00;zero}" , -123.4567); // "minus 123.46" String .Format("{0:0.00;minus 0.00;zero}" , 0.0); // "zero"

Если вы замечаете, что часто вставляете один и тот же символ, то подумайте о том, не стоит ли добавить его в таблицу автозамены. Кроме добавления элемента автозамены, используемого для вставки символа, вы можете назначить любому символу сочетание быстрых клавиш. Щелкните кнопку Клавиша. Впоследствии для вставки этого символа вам не нужно будет пользоваться диалоговым окном. Многие символы уже внесены в список автозамены и им назначены сочетания клавиш. Если вы хотите увидеть эти символы, то в диалоговом окне Символы щелкните вкладку Специальные символы, чтобы вывести ее на передний план.

Some funny examples

As you could notice in the previous example, you can put any text into formatting pattern, e.g. before an usual pattern „my text 0.0 “. You can even put any text between the zeroes, e.g. „0aaa .bbb 0 “.


String .Format("{0:my number is 0.0}" , 12.3); // "my number is 12.3" String .Format("{0:0aaa.bbb0}" , 12.3); // "12aaa.bbb3"



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: