« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга


ПнВтСрЧтПтСбВс
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
    Популярное
Обработка SimpleXML с помощью PHP

Функция AccessResource

Планировщик задач в ASP.NET

Ханойская башня

Функция GetAsyncKeyState

Доступ из управляемого кода к компонентам, построенным на основе модели компонентных объектов Microsoft (COM)

JavaScript - полезные функции часть 3

Использование группировки в отчете

Шаблоны документов и Perl

Разрешения на основе атрибутов


    Архив файлов



    Сообщества



    Документация

Статьи:: .NET Framework :: System.* :: Строки форматирования в .NET


отправить ссылку другу версия для печати  Обсудить на форуме

Строки форматирования в .NET

Источник: www.jenyay.net  

Введение

В .NET все объекты происходят от базового класса System.Object, который содержит метод ToString() для преобразования объекта в строку, но кроме этого метода, который не принимает никаких параметров, многие классы реализуют кроме еще несколько перегруженных методов ToString(), один из которых принимает строку форматирования. Об этом методе, а точнее о тех самых строках форматирования, которые надо им передавать мы и поговорим.



Форматирование целых и дробных чисел

Чтобы иметь возможность выбирать формат представления чисел, надо вызывать перегруженный метод ToString(), в который передается параметр типа System.String, которая и описывает форматирование. Эта строка должна содержать букву, которая описывает формат, и может содержать цифру, значение которой зависит от формата представления (т.е. от предшествующей буквы). Буквы, описывающие форматирования, могут быть следующие:

  • "G" (или "g", так же этой строке равносильна пустая строка "" и null) в качестве основного формата;
  • "E" (или "e") для экспоненциального вида;
  • "F" (или "f") для представления чисел с фиксированной точкой;
  • "N" (или "n") для числового представления с отделением тысяч, миллионов и т.д. пробелами;
  • "R" (или "r") для такого строкового представления, что при использовании обратно метод Parse() получим то же самое число;
  • "X" (или "x") для 16-ричного представления чисел;
  • "P" (или "p") для процентного представления;
  • "C" (или "c") для представления чисел в денежном формате.

В качестве примеров, на которых будем показывать преобразования, возьмем следующие числа:

Double:
1.2345678
5.6789e10
9.87654e-6

Int32:
123456789

Строка форматирования "G"

Начнем с самой простой строки форматирования. Она представляет собой основное (General) форматирование. Цифра после буквы обозначает сколько цифр будет выведено до символа экспоненты (если он понадобится). "g" и "G" отличаются тем, что в первом случае знак экспоненты будет обозначен маленькой буквой e, а во второй заглавной E. Если числа, написанные выше, преобразовывать в строку с использованием параметра "G", то они будут выведены так же, как и написаны выше. Но если их преобразовать строкой, например, "G3", то вот что получим:

Исходное число
"g3"
"G3"
1.2345678 1,23 1,23
5.6789e10 5,68e+10 5,68E+10
9.87654e-6 9,88e-06 9,88E-06
123456789 1,23e+08 1,23E+08

Строка форматирования "E"

Эта строка форматирования используется, если нужно представить число в экспоненциальном виде. При этом число после буквы "E" (или "e") означает число чисел после запятой перед экспонентой. "e" и "E" отличаются тем, что в первом случае знак экспоненты будет обозначен маленькой буквой e, а во второй заглавной E. Вот как будут отформатированы те же числа с этой строкой форматирования:

Исходное число
"e"
"E3"
1.2345678 1,234568e+000 1,235E+000
5.6789e10 5,678900e+010 5,679E+010
9.87654e-6 9,876540e-006 9,877E-006
123456789 1,234568e+008 1,235E+008

Строка форматирования "F"

Эта строка форматирования нужна для представления чисел в формате с фиксированной точкой. Число после буквы "F" обозначает количество чисел после точки (по умолчанию два числа).

Исходное число
"f"
"F4"
1.2345678 1,23 1,2346
5.6789e10 56789000000,00 56789000000,0000
9.87654e-6 0,00 0,0000
123456789 123456789,00 123456789,0000

Обратите внимание на то, что осталось от маленького числа 9.87654e-6

Строка форматирования "N"

При использовании этой строки форматирования тысячи, миллионы и т.д. будут отделены пробелами. Число после буквы "N" обозначает количество цифр после точки

Исходное число
"n"
"N4"
1.2345678 1,23 1,2346
5.6789e10 56 789 000 000,00 56 789 000 000,0000
9.87654e-6 0,00 0,0000
123456789 123 456 789,00 123 456 789,0000

Строка форматирования "R"

Эта строка форматирования может использоваться в том случае, если позже полученная строка будет преобразовываться обратно в число и при этом гарантируется, что после такой обратной операции Вы получите исходное число. Эту строку форматирования можно использовать только для дробных чисел, при попытке использовать ее при типе Int32, бросается исключение FormatException. При использовании этой строки форматирования число после буквы "r" значения не имеет. Так же не имеет значения то, писать эту букву заглавной или прописной.

Исходное число
"r"
1.2345678 1,2345678
5.6789e10 56789000000
9.87654e-6 9,87654E-06

Строка форматирования "X"

Эта строка форматирования нужна для представления целых чисел в 16-ричной форме. При попытке ее использовать на дробных числах, бросается исключение FormatException. При использовании заглавной буквы "X" буквы A - F в 16-ричном представлении будут заглавными, а при использовании прописной "x" - прописные.

Исходное число
"x"
"X"
123456789 75bcd15 75BCD15

Форматирование с использованием метода String.Format

Метод String.Format удобно использовать, когда надо отформатировать сравнительно длинную строку с подстановками. Этот метод использует выражения, заключенные в фигурных скобках. Общий формат выражения выглядит как
{index[,alignment][:formatString]},
где index - номер переменной, который затем перечисляется в списке параметров, alignment - размер поля, которое отводится для этого числа, formatString - строка форматирования, аналогичная описанным выше (т.е. C, D, E, F, G, N или X). Таким образом могут быть записаны выражения вроде s = System.String ("Форматированное число: {0:G}", x), или s = System.String ("Форматированное число: {0:G3}", x), или s = System.String ("Форматированное число: {0,15:G3}", x). Примеры того как будет выглядеть результат показано в таблице:

Строка форматирования Результат
{0:G} или, что равнозначно просто {0}
Форматированное число: 1,2345678
{0:G3}
Форматированное число: 1,23
{0,15:G3}
Форматированное число:            1,23

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

Класс DateTime в своем методе ToString предлагает огромное число возможных строк форматирования. Все их подробно описывать нет смысла, поэтому вседем их в таблицу. Здесь тоже стоит обращать внимание на регистр букв, т.к. от него может отличаться та часть даты или времени, которая выводится. В качестве примера будем выводить дату "16 февраля (пятница) 2007 года 19 ч. 50 мин. 22 с."

Строка форматирования Краткое описание Результат работы
"G" (или просто date.ToString()) Основной формат 16.02.2007 19:50:22
"G" Основной формат без вывода секунд 16.02.2007 19:50
"d" Дата в кратком формате 16.02.2007
"D" Дата в полном формате 16 февраля 2007.
"dd" Число 16
"ddd" День недели в кратком формате Пт
"dddd" День недели в фолном формате Пятница
"a"   16 февраля 2007. 19:50
"F" или "U"   16 февраля 2007. 19:57:11
"r" Время по Гринвичу Fri, 16 Feb 2007 19:50:22 GMT
"u" ??? 2007-02-16 19:50:22Z
"s" ??? 2007-02-16T19:50:22
"M" или "m" Месяц и число в полном формате февраля 16
"Y" или "y" Месяц и год Февраль 2007 г.
"MM" Месяц числом 02
"MMM" Месяц в кратком формате фев
"MMMM" Месяц в полном формате Февраль
"mm" минуты 50
"yy" Последние две цифры года 07
"yyy" Год полностью 2007
"t" Время без секунд 19:50
"T" Время с секундами 19:50:22
"ss" Секунды 22

Интересно, что мне по крайней мере не удалось найти как можно вывести только количество часов. До здравому смыслу должно быть что-то вроде "h" или "hh", но на эти строки форматирования метод ToString() бросает исключение FormatException. Также перечисленные выше символы форматирования можно использовать вместе в одной строке, при этому значение их может меняться. Например, строка "dd.M" выводит 16.2 (день.месяц), хотя отдельно M выводит число и месяц в полном формате.

Ну вот пожалуй и все. Надеюсь, что это кому-нибудь понадобится :)




Рубрика: System.*




XML документация в C#.

XML в .NET

Сегодня речь пойдет об одной интересной и полезной возможности языка С#, которая поможет нам в документировании кода. Она называется «XML документация» или «Документирующие комментарии XML». Это такие специальные теги XML, которые содержаться в комментариях и описывают свойства или методы в конкретном файле. Так вот, есть по крайней мере три веских причины, почему всегда следует заполнять XML комментарии.


Подробнее... | Рубрика: XML в .NET | Добавлено: 08.10.2008

Курсоры в MySQL 5.

MySQL

Начиная с 5-ой версии, MySQL имеет возможность создавать курсоры. Курсор — это виртуальная таблица, предоставляющая альтернативный способ просмотра табличных данных. Курсор не содержит данных, а лишь ссылается на них из других таблиц. Из этого вытекает ряд особенностей, но об этом ниже.


Подробнее... | Рубрика: MySQL | Добавлено: 08.10.2008

Microsoft опубликовала подробности о сессиях Windows 7.

Мероприятия

В преддверии конференции WinHEC компания Microsoft опубликовала подробный список сессий, которые пройдут в рамках конференции. Довольно-таки большое количество выступлений будет посвящено Windows 7, что не может не радовать. Принимая во внимание тот факт, что PDC и WinHEC разделяют несколько дней, а пройдут они в одном здании - Los Angeles Convention Center, - можно несколько дней поиграть в прятки, спрятавшись в какой-нибудь комнате, но зато бесплатно посетить WinHEC.


Подробнее... | Рубрика: Мероприятия | Добавлено: 08.10.2008

Остальные статьи:

Microsoft делится подробностями о том, что будет после Windows
Тестируем новый javascript от нового браузера Google
MySQL Query Cache
Использование провайдеров компиляции в Asp.net
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новый вебсайт для программистов - StackOve...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейса
Генераторы отчетов FastReport 4 и QuickReport 5: версии 2008 года
День программиста — набор стерeотипов
Индусские програмисты
Вышел Django 1.0
Портативная версия Google Chrome Portable
Исходные коды .Net Frameword 3.5 SP1 для отладки в Visual Studio
Пишем правильный online WYSIWYG-редактор


Цитата дня (все,добавить):

Портал фрилансеров

    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование

Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 131
Пользователей: 0