C# 4.0: полное руководство | страница 45
Разумеется, аргументы, связанные с командой форматирования, не обязательно должны быть константами. Ниже приведен пример программы, которая выводит таблицу результатов возведения чисел в квадрат и куб. В ней команды форматирования используются для вывода соответствующих значений.
>// Применить команды форматирования.
>using System;
>class DisplayOptions {
> static void Main() {
> int i;
> Console.WriteLine ("Число\tКвадрат\tКуб") ;
> for(i = 1; i < 10; i++)
> Console.WriteLine("{0}\t{1}\t{2}", i, i*i, i*i*i);
> }
>}
Результат выполнения этой программы выглядит следующим образом.
>Число Квадрат Куб
>1
>1
>1
>2
>4
>8
>3
>9
>27
>4
>16
>64
>5
>25
>125
>6
>36
>216
>7
>49
>343
>8
>64
>512
>9
>81
>729
В приведенных выше примерах сами выводимые значения не форматировались. Но ведь основное назначение спецификаторов формата — управлять внешним видом выводимых данных. Чаще всего форматированию подлежат следующие типы данных: с плавающей точкой и десятичный. Самый простой способ указать формат данных — описать шаблон, который будет использоваться в методе >WriteLine().
Для этого указывается образец требуемого формата с помощью символов #, обозначающих разряды чисел. Кроме того, можно указать десятичную точку и запятые, разделяющие цифры. Ниже приведен пример более подходящего вывода результата деления 10 на 3.
>Console.WriteLine("Деление 10/3 дает: {0:#.##}", 10.0/3.0);
Выполнение этого оператора приводит к следующему результату.
>Деление 10/3 дает: 3.33
В данном примере шаблон #.## указывает методу WriteLine() отобразить два десятичных разряда в дробной части числа. Следует, однако, иметь в виду, что метод WriteLine() может отобразить столько цифр слева от десятичной точки, сколько потребуется для правильной интерпретации выводимого значения.
Рассмотрим еще один пример. Оператор
>Console.WriteLine("{0:###,###.##}", 123456.56) ;
дает следующий результат.
>123,456.56
Для вывода денежных сумм, например, рекомендуется использовать спецификатор формата С.
>decimal balance; balance = 12323.09m;
>Console.WriteLine("Текущий баланс равен {0:C}", balance);
Результат выполнения этого фрагмента кода выводится в формате денежных сумм, указываемых в долларах США.
>Текущий баланс равен $12,323.09
Форматом С можно также воспользоваться, чтобы представить в более подходящем виде результат выполнения рассматривавшейся ранее программы расчета цены со скидкой.