Выбрать главу

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

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

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

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);

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

Console.WriteLine("Значение в тысячах: " + "{0:#0,}", num) ;

/* Отобразить по-разному положительные, отрицательные и нулевые значения. */

Console.WriteLine("Отобразить по-разному положительные," +

"отрицательные и нулевые значения.");

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

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

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

// Отобразить числовое значение в процентах, num = 0.17;

Console.WriteLine("Отобразить в процентах: {0:#%}", num);

}

}

Ниже приведен результат выполнения этой программы.

Формат по умолчанию: 64354.2345

Значение с 2 десятичными разрядами: 64354.23

Добавить запятые: 64,354.23

Использовать экспоненциальное представление: 6.435е+04 Значение в тысячах: 64

Отобразить по-разному положительные, отрицательные и нулевые значения.

64354.2

(64354.23)

0.00

Отобразить в процентах: 17%

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

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

06/05/2005

Friday, January 1, 2010