Чтение онлайн

на главную - закладки

Жанры

C# 4.0 полное руководство - 2011

Шилдт Герберт

Шрифт:

Таблица 22.6. Символы-заполнители специального формата числовых данных

Символ-заполнитель

Назначение

#

Цифра

Десятичная точка

,

Разделитель групп разрядов

%

Процент

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 или \п.

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

обозначают количество отображаемых десятичных цифр. Дробная часть числового значения округляется в соответствии с заданным форматом отображения. Если указывается символ
Е, то он отображается прописной буквой "Е". А если указывается символ е, то он отображается строчной буквой "е". Для того чтобы знак порядка отображался всегда, используются формы Е+ или е+. А для отображения знака порядка только при выводе отрицательных значений служат формы Е, е, Е- или е-.

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

положительный_формат; отрицательный_формат; нулевой_формат

Рассмотрим следующий пример.

Console.WriteLine("{0:#.##; (#.##);0.00}", num);

Если значение переменной num положительно, то оно отображается с двумя разрядами после десятичной точки. Если же значение переменной num отрицательно, то оно также отображается с двумя разрядами после десятичной точки, но в круглых скобках. А если значение переменной num равно нулю, то оно отображается в виде строки 0.00. Когда используются разделители, указывать все части приведенной выше фррмы пользовательского спецификатора формата совсем не обязательно. Так, если требуется вывести только положительные или отрицательные значения, нулевой_ формат можно опустить. (В данном случае нуль форматируется как положительное значение.) С другой стороны, можно опустить отрицательный_формат. И в этом случае положительный_формат и нулевой_формат должны разделяться точкой с запятой. А в итоге положительный_формат будет использоваться для форматирования не только положительных, но и отрицательных значений.

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

// Пример применения специальных форматов, using System;

class PictureFormatDemo { static void Main {

double num = 64354.2345;

Console.WriteLine("Формат по умолчанию: " + num);

// Отобразить числовое значение с 2 разрядами после десятичной точки. Console.WriteLine("Значение с 2 десятичными разрядами: " +

"{0:#.##}", num);

// Отобразить числовое значение с 2 разрядами после // десятичной точки и запятыми перед ней.

Console.WriteLine("Добавить запятые: {0:#,###.##}", num);

// Отобразить числовое значение в экспоненциальном представлении.

Console.WriteLine("Использовать экспоненциальное представление: " +

"{0:#.###е+00}", num);

// Отобразить числовое значение, масштабированное в тысячах.

Поделиться:
Популярные книги

Сердце Дракона. Том 7

Клеванский Кирилл Сергеевич
7. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.38
рейтинг книги
Сердце Дракона. Том 7

Страж Кодекса. Книга II

Романов Илья Николаевич
2. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга II

Пипец Котенку! 3

Майерс Александр
3. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 3

An ordinary sex life

Астердис
Любовные романы:
современные любовные романы
love action
5.00
рейтинг книги
An ordinary sex life

Ваше Сиятельство 11

Моури Эрли
11. Ваше Сиятельство
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Ваше Сиятельство 11

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Бестужев. Служба Государевой Безопасности

Измайлов Сергей
1. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности

Курсант: назад в СССР

Дамиров Рафаэль
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Курсант: назад в СССР

Любимая учительница

Зайцева Мария
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Любимая учительница

Мама из другого мира...

Рыжая Ехидна
1. Королевский приют имени графа Тадеуса Оберона
Фантастика:
фэнтези
7.54
рейтинг книги
Мама из другого мира...

Отвергнутая невеста генерала драконов

Лунёва Мария
5. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Отвергнутая невеста генерала драконов

Мастер 7

Чащин Валерий
7. Мастер
Фантастика:
фэнтези
боевая фантастика
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Мастер 7

Неудержимый. Книга XIII

Боярский Андрей
13. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIII

Город воров. Дороги Империи

Муравьёв Константин Николаевич
7. Пожиратель
Фантастика:
боевая фантастика
5.43
рейтинг книги
Город воров. Дороги Империи