Форматированный вывод строк
На вкладке "Региональные параметры" инструмента "Язык и региональные стандарты" вы могли заметить группу числовых и денежных форматов. В приложениях может потребоваться специальное определение заданного формата, например, вывод результата в рублях или долларах. Рассмотрим это на практике. Создайте новое консольное приложение и назовите его 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)