Создание Windows-приложений на основе Visual C#

         

Форматированный вывод строк


На вкладке "Региональные параметры" инструмента "Язык и региональные стандарты" вы могли заметить группу числовых и денежных форматов. В приложениях может потребоваться специальное определение заданного формата, например, вывод результата в рублях или долларах. Рассмотрим это на практике. Создайте новое консольное приложение и назовите его FormatOutput. Весь дальнейший код будем писать внутри блока try…catch:

try { //Дальнейший код… } catch (Exception ex) { Console.WriteLine(ex.Message); }

Для начала разберемся с конструкцией, которую вы наверняка много раз встречали:

int i = 15; Console.WriteLine("{0}", i);

При запуске на экран выведется число 15. Зачем так писать? Не проще ли вывести на экран это число следующим образом:

int i = 15; Console.WriteLine( i);

Результат будет в точности таким же! Дело в том, что сами скобки и числа в них ({0}, {1}) — так называемые подстановочные знаки, позволяющие легко добиваться более сложного вывода на экран, например, такого:

int x = 23, y = –4, z = 5, j = 20, v = 40; Console.WriteLine ("переменная x = {0}, переменная y = {1}, переменная z = {2}, переменная j = {3}, переменная v = {4}", x, y, z, j, v);

Результатом будет:

переменная x = 23, переменная y = –4, переменная z = 5, переменная j = 20, переменная v = 40

Опять-таки, такой же результат можно получить другим способом:

Console.WriteLine("переменная " + x); Console.WriteLine("переменная " + y); Console.WriteLine("переменная " + z); Console.WriteLine("переменная " + j); Console.WriteLine("переменная " + v);

Использование подстановочных знаков здесь, несомненно, является оправданным.

Для вывода в определенном формате подстановочные знаки с параметрами оказываются просто незаменимыми. Некоторые параметры подстановочных знаков:

  • d — десятичный формат. Позволяет задать общее количество знаков (при необходимости число дополняется слева нулями).

    int a = 38; //Результат 0038 Console.WriteLine("a={0:d4}", a);

  • f — формат с фиксированной точностью. Позволяет задать количество знаков после запятой.

    double pi = 3.1415926; //Результат 3.14 Console.WriteLine("pi={0:f2}", pi);

  • x — шестнадцатеричный формат.

    int b = 255; //Результат FF. Console.WriteLine("b={0:X}", b); int c = 255; //Результат ff. Console.WriteLine("c={0:x}", c);

  • c — денежный формат (добавляет знак доллара и показывает два знака после запятой).

    double d = 1003.214; //Результат $1, 003.14 в английской версии Windows (или при выборе //английского языка (США) на вкладке "Региональные параметры" инструмента //"Язык и региональные параметры") //1 003,14 р. в русской. Console.WriteLine("d={0:c}", d);

  • e — вывод числа в экспоненциальной форме.

    double e = 213.1; //Результат 2.131000e+002 Console.WriteLine("e={0:e}", e);

На диске, прилагаемом к книге, вы найдете приложение FormatOutput (Code\Glava8\ FormatOutput)



Содержание раздела