Добавить в цитаты Настройки чтения

Страница 390 из 502

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

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

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

<b>Console.WriteLine(&quot;{0:#.##; (#.##);0.00}&quot;, num);</b>

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

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

<b>// Пример применения специальных форматов,</b>

<b>using System;</b>

<b>class PictureFormatDemo {</b>

<b>  static void Main() {</b>

<b>    double num = 64354.2345;</b>

<b>    Console.WriteLine(&quot;Формат по умолчанию: &quot; + num);</b>

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

<b>    Console.WriteLine(&quot;Значение с 2 десятичными разрядами: &quot; +</b>

<b>           &quot;{0:#.##}&quot;, num);</b>

<b>    // Отобразить числовое значение с 2 разрядами после</b>

<b>    // десятичной точки и запятыми перед ней.</b>

<b>    Console.WriteLine(&quot;Добавить запятые: {0:#,###.##}&quot;, num);</b>

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

<b>    Console.WriteLine(&quot;Использовать экспоненциальное представление: &quot; +</b>

<b>           &quot;{0:#.###е+00}&quot;, num);</b>

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

<b>    Console.WriteLine(&quot;Значение в тысячах: &quot; + &quot;{0:#0,}&quot;, num) ;</b>

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

<b>    Console.WriteLine(&quot;Отобразить по-разному положительные,&quot; +</b>

<b>          &quot;отрицательные и нулевые значения.&quot;);</b>

<b>    Console.WriteLine(&quot;{0:#.#; (#.##);0.00}&quot;, num);</b>

<b>    num = -num;</b>

<b>    Console.WriteLine(&quot;{0:#.##;(#.##);0.00}&quot;, num);</b>

<b>     num = 0.0;</b>

<b>    Console.WriteLine (&quot;{0:#.##; (#.##);0.00} &quot;, num) ;</b>

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

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

<b>  }</b>

<b>}</b>

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

<b>Формат по умолчанию: 64354.2345</b>

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

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

<b>Использовать экспоненциальное представление: 6.435е+04</b>

<b>Значение в тысячах: 64</b>

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

<b>64354.2</b>

<b>(64354.23)</b>

<b>0.00</b>

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

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

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

<b>06/05/2005</b>

<b>Friday, January 1, 2010</b>

<b>12:59:00</b>

<b>12:59:00 PM</b>

Кроме того, дата и время могут быть по-разному представлены в отдельных странах. Для этой цели в среде .NET Framework предусмотрена обширная подсистема форматирования значений даты и времени.

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