Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. Абзацы, отступы, форматирование абзаца
  2. Библиотека ввода/вывода
  3. Введение в OC Linux. Перенаправление ввода-вывода. Программные каналы (конвейеры).
  4. Введение в OC Linux. Перенаправление ввода-вывода. Программные каналы (конвейеры).
  5. Ввод-вывод чисел, символов и строк на консоль. Переключение ввода-вывода, работа с файлами.
  6. ВВОДА И ВЫВОДА ИНФОРМАЦИИ
  7. Вид прикладной компьютерной программы, предназначенной для производства (включая набор, редактирование, форматирование, иногда печать) любого вида печатной информации
  8. Виды и назначение устройств ввода и вывода информации.
  9. Вывода изображения, формируемого компьютером
  10. Задание № 4. Проверить правильность умозаключения при помощи правил вывода из сложных суждений.

Прежде чем продолжить рассмотрение типов данных и операторов, сделаем небольшое отступление. До этого момента при выводе списка данных мы разделяли части списка с помощью знака плюс, как показано ниже:

Console.WriteLine("Было заказано " + 2 + " книги по $" + 3 +
"за единицу товара.");

Это удобно, но такой вывод числовой информации не позволяет контролировать способ появления данной информации на экране. Например, нельзя контролировать выводимое число десятичных разрядов для значений с плавающей точкой. Рассмотрим следующий оператор:

Console.WriteLine("10/3 = " + 10.0/3.0);

После его выполнения на экран будет выведена следующая строка:

10/3 = 3.33333333333333

Для некоторых целей вывод такого большого числа десятичных разрядов оправдан, но в других случаях он может быть неприемлем. Например, в финансовых вычислениях обычно требуется вывод только двух десятичных разрядов. Для форматирования числовых данных необходимо использовать перегруженный метод WriteLine()(перегрузка методов будет рассматриваться в главе 6), в один из параметров которого можно внедрить форматирующую информацию. Синтаксис этого метода выглядит так:

WriteLine("форматирующая строка", arg0, arg1,..., argN);

В этой версии метода WriteLine()аргументы разделены запятыми, а не знаками плюс. Форматирующая строка состоит из стандартных выводимых без изменения символов и спецификаторов формата. Синтаксис спецификаторов формата обычно выглядит так:

{argnum, width: fmt}

Здесь элемент argnum указывает номер аргумента (начиная с ноля), который должен быть выведен на экран в данном месте строки. Элемент width определяет минимальную ширину поля, предоставляемого данному аргументу, а элемент fmt специфицирует используемый формат вывода.

Когда при выполнении в форматирующей строке встречается спецификатор формата, программа заменяет его соответствующим аргументом, который и выводится на экран. Следовательно, позиция спецификатора формата в форматирующей строке указывает место, где на экране будут выведены соответствующие данные. Элементы width и fmt являются не обязательными. Следовательно, в своей простейшей форме спецификатор формата указывает аргумент, необходимый для вывода на экран. Например, спецификатор {0} указывает на аргумент arg0, спецификатор {1} указывает на аргумент arg1 и так далее.

Теперь рассмотрим простой пример. Оператор
Console.WriteLine("В феврале {0} или {1} дней.", 28, 29);
выведет на экран следующую строку:
В феврале 28 или 29 дней.

Как видите, спецификатор {0} заменяется значением 28, а спецификатор {1} - значением 29. Обратите внимание, что аргументы метода WriteLine() разделяются запятыми, а не знаками плюс.

Следующий пример демонстрирует усовершенствованную версию предыдущего оператора, в которой специфицирована минимальная ширина поля:

Console.WriteLine("В феврале {0,10} или {1,5} дней.", 28, 29);

Результат выполнения данного оператора следующий:

В феврале 28 или 29 дней.

Если выводимое число меньше заданной ширины поля, то неиспользованные части поля заполняются пробелами. Помните, что ширина поля - это минимальное количество позиций, выделенных для выводимого значения. Если для вывода числа потребуется большее количество позиций, они будут выделены автоматически.

В предыдущих примерах к самим значениям форматирование не применялось, но безусловно, используемые спецификаторы формата должны контролировать отображение данных. Чаще всего форматируются значения с плавающей точкой и значения, имеющие тип decimal. Одним из простейших способов спецификации формата является написание шаблона, который будет использован методом WriteLine() при форматировании выводимых значений. Шаблон создается следующим образом: в спецификаторе формата указывается номер аргумента, затем после двоеточия при помощи символа # указываются позиции выводимых цифр. Так, после выполнения оператора

Console.WriteLine("10/3 = {0:#.##}", 10.0/3.0);
программа выведет отформатированное значение, являющееся результатом деления 10.0 на 3.0,
10/3 = 3.33

В этом примере шаблон создается последовательностью символов #.##, с помощью которых методу WriteLine() сообщается о необходимости вывода двух десятичных разрядов. Если программой выводится число, у которого целая часть содержит более одного знака, то во избежание потери данных метод WriteLine() будет выводить более одной цифры слева от запятой.

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

decimal balance

balance = 12323.09m;
Concole.WriteLine("Текущий баланс равен: {0:C}", balance);

В результате будет выведено следующее сообщение:

Текущий баланс равен: $12,323.09

10Логические (булевские) выражения в C#. Простые и сложные выражения. Логические операнды и логические операторы. Порядок выполнения операций.




Дата добавления: 2015-01-29; просмотров: 29 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав