Ниже приведен результат выполнения этой программы. Сумма: 1 Произведение: 1 Сумма: 3 Произведение: 2 Сумма: 6 Произведение: 6 Сумма: 10 Произведение: 24 Сумма: 15 Произведение: 120 Сумма: 21 Произведение: 720 Сумма: 28 Произведение: 5040 Сумма: 36 Произведение: 40320 Сумма: 45 Произведение: 362880 Сумма: 55 Произведение: 3628800
Обратите особое внимание в данной программе на следующий оператор. str = String.Format("Сумма:{0,3:D} Произведение:{1,8:D}", sum, prod);
В этом операторе содержится вызов метода Format с двумя спецификатора ми формата: одним — для суммы (в переменной sum), а другим — для произведения (в переменной prod). Обратите также внимание на то, что номера аргументов указы ваются таким же образом, как и в вызове метода WriteLine, и что в вызов метода Format включается обычный текст, как, например, строка "Сумма: ". Этот текст передается данному методу и становится частью выводимой строки. Применение метода ToString для форматирования данных
Для получения отформатированного строкового представления отдельного значе ния любого числового типа, которому соответствует встроенная структура, например Int32 или Double, можно воспользоваться методом ToString. Этой цели служит приведенная ниже форма метода ToString. public string ToString("форматирующая строка")
В этой форме метод ToString возвращает строковое представление вызываю щего объекта в том формате, который определяет спецификатор "форматирующая строка", передаваемый данному методу. Например, в следующей строке кода фор мируется строковое представление значения 188.99 в формате денежной единицы с помощью спецификатора формата С. string str = 189.99.ToString("С");
Обратите внимание на то, что спецификатор формата передается методу ToString непосредственно. В отличие от встроенных команд форматирования, ис пользуемых в вызовах методов WriteLine и Format, где для этой цели допол нительно указываются номер аргумента и ширина поля, в вызове метода ToString
достаточно указать только спецификатор формата. Ниже приведен вариант примера предыдущей программы форматирования, изме ненный с целью продемонстрировать применение метода ToString для получения отформатированных строк. Этот вариант дает такой же результат, как и предыдущий. // Использовать метод ToString для форматирования значений. using System; class ToStringDemo { static void Main { double v = 17688.65849; double v2 = 0.15; int x = 21; string str = v.ToString("F2"); Console.WriteLine(str); str = v.ToString("N5"); Console.WriteLine(str); str = v.ToString("e"); Console.WriteLine (str); str = v.ToString("r"); Console.WriteLine(str); str = v2.ToString("p"); Console.WriteLine(str); str = x.ToString("X"); Console.WriteLine(str); str = x.ToString("D12"); Console.WriteLine(str); str = 189.99.ToString("C"); Console.WriteLine(str); } } Определение пользовательского формата числовых данных
Несмотря на всю полезность предопределенных спецификаторов формата число вых данных, в C# предоставляется также возможность определить пользовательский, т.е. свой собственный, формат, используя средство, называемое форматом изображе ния. Своим происхождением термин формат изображения обязан тому обстоятельству, что специальный формат пользователь определяет, задавая пример внешнего вида (т.е. изображение) выводимых данных. Такой подход вкратце упоминался в части I этой книги, а здесь он рассматривается более подробно. Символы-заполнители специального формата числовых данных
Когда пользователь определяет специальный формат, он задает этот формат в виде примера (иди изображения) того, как должны выглядеть выводимые данные. Для этой цеди используются символы, перечисленные в табл. 22.6. Они служат в качестве запол нителей и рассматриваются далее по очереди.
Символ точки обозначает местоположение десятичной точки.