Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

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






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






Функция WriteLine используется в C# для вывода строки в линию. Нам часто приходится выводить данные разных типов, такие как целочисленные (int), строковые (string) и дробные (float) типы чисел. В таких ситуациях мы должны использовать форматированный вывод. В прошлом уроке, затрагивали вывод с использованием ссылки на данные типа {0}. Здесь мы будем рассмотрим отступы, количество цифр и спецификаторы формата. Начнем с отступов.

  Console.WriteLine(" {0, 5} {1, 5}", 10, 20);

{0, 5} - число 0 означает номер аргумента использовать для вывода (отсчет с нуля), которым у нас является число 10. Следующее число 5 - количество отступов от перед аргументом, но если бы мы указали -5, то считалось бы количество отступов после аргумента.

  Console.WriteLine(" {0, -5} {1, -5}", 30, 40);

В форматировании вывода есть возможность определения количества цифр у числа. Например, у нас есть число 50, нам нужно чтобы оно имело как минимум 5 цифр, соответственно если мы установим рядом с отступом указание в виде D5 (Decimal 5), то оно примет вид 00050.

  Console.WriteLine(" {0, -5: D5} {1, -5: D10}", 50, 60);

Код примера:

  using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;   namespace formatingOut { class Program { static void Main(string[] args) { Console.WriteLine(" {0, 5} {1, 5}", 10, 20); Console.WriteLine(" {0, -5} {1, -5}", 30, 40); Console.WriteLine(" {0, -5: D5} {1, -5: D10}", 50, 60);   Console.Read(); } } }

 

Спецификаторы формата служат для форматирования строки числового формата. Это позволяет оформить значение в соответствии со стандартом вывода валютного значения, процентного, шестнадцатеричного и других. Например спецификатор C - оформляет числовое значение в соответствии с валютым:

  Console.WriteLine(" {0: C}", 123456789); // 123 456 789, 00 р.

В комментарии указан вывод строки. В следующей таблице приведены другие спецификаторы формата:

# Спецификатор формата Описание
  C или c Валютное значение (по местным настройкам валюты)
  D или d Целочисленное значение
  E или e Экспоненциальное значение
  F или f Формат с плавающей запятой (дробный)
  G или g Общий формат (наиболее компактная запись на основе экспоненциального и дробного)
  N или n Цифры с разделением целых и дробных частей
  P или p Проценты
  R или r Возвращает строку, которая при обратном преобразовании не изменит своего вида
  X или x Шестнадцатеричное число

Проведем манипуляции с выводом на основе числа 123456789, применив к нему наши спецификаторы формата

  using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;   namespace formatSpecifiers { class Program { static void Main(string[] args) { int number = 123456789;   Console.WriteLine(" {0: C}", number); // 123 456 789, 00 р. Console.WriteLine(" {0: D}", number); // 123456789 Console.WriteLine(" {0: E}", number); // 1, 234568E+008 Console.WriteLine(" {0: F}", number); // 123456789, 00 Console.WriteLine(" {0: G}", number); // 123456789 Console.WriteLine(" {0: N}", number); // 123 456 789, 00 Console.WriteLine(" {0: P}", number); // 12 345 678 900% Console.WriteLine(" {0: X}", number); // 75BCD15   Console.Read(); } } }

Базовых спецификаторов в большинстве случаев вполне достаточно, но наряду с основными имеются дополнительные. Данные форматы описываются с помощью заполнителей строки, определяя максимальное и минимальное количество цифр строки, размещение и внешний вид знака отрицательного значения.

# Спецификатор формата Описание
    Знак-заместитель нуля
  # Заместитель цифры
  . Разделитель
  , Разделитель числовых разрядов и масштабирование чисел
  % Заместитель процентов
  E+0 E-0 e+0 e-0 Экспоненциальное представление чисел
  \ Символ начала управляющей последовательности
  'ABC' " ABC" Символьная строка
  ; Разделитель секций

Следующий пример показывает как работают данные спецификаторы:

  using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;   namespace formatSpecifiers { class Program { static void Main(string[] args) { int number = 123456789;   Console.WriteLine(" {0: #0}", number); // 123456789 Console.WriteLine(" {0: #0; (#0)}", number); // 123456789 Console.WriteLine(" {0: #0; (#0); }", number); // 123456789 Console.WriteLine(" {0: #%}", number); // 12345678900%   number = -123456789; Console.WriteLine(); // Создадим отступ от предыдущего вывода Console.WriteLine(" {0: #0}", number); // -123456789 Console.WriteLine(" {0: #0; (#0)}", number); // (123456789) Console.WriteLine(" {0: #0; (#0); }", number); // (123456789) Console.WriteLine(" {0: #%}", number); // -12345678900%   number = 0; Console.WriteLine(); // Отступ Console.WriteLine(" {0: #0}", number); // 0 Console.WriteLine(" {0: #0; (#0)}", number); // 0 Console.WriteLine(" {0: #0; (#0); }", number); // Console.WriteLine(" {0: #%}", number); // %   Console.Read(); } } }

Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал