Перейти к содержанию

Форматирование: различия между версиями

Материал из Химсофт Вики
Строка 82: Строка 82:


| '''<code>0</code>'''  
| '''<code>0</code>'''  
| Знак-заменитель нуля.
| Знак-заменитель нуля
| Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку. В противном случае 0 отображается в выходной строке.
| Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку.
В противном случае 0 отображается в выходной строке.
|-
|-


| '''<code>#</code>'''  
| '''<code>#</code>'''  
| Заместитель цифры.
| Заместитель цифры
| Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку. В противном случае в выходной строке ничего не записывается.
| Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку.
В противном случае в выходной строке ничего не записывается.
|-
|-


| '''<code>.</code>'''  
| '''<code>.</code>'''  
| Разделитель дроби.
| Разделитель дроби
|Первый знак <code>.</code> в строке формата определяет положение разделителя дроби.
|Первый знак <code>.</code> в строке формата определяет положение разделителя дроби.
|-
|-


| '''<code>,</code>'''  
| '''<code>,</code>'''  
| Разделитель числовых разрядов.
| Разделитель числовых разрядов
| Знак <code>,</code> в строке формата определяет положение разделителя групп разрядов.
| Знак <code>,</code> в строке формата определяет положение разделителя групп разрядов.
|-
|-


| '''<code>%</code>'''  
| '''<code>%</code>'''  
| Заместитель процентов.
| Заместитель процентов
| При использовании знака <code>%</code> в строке форматирования число будет умножено на 100, и в соответствующую позицию в выходной строке будет вставлен символ <code>%</code>.
| При использовании знака <code>%</code> в строке форматирования число будет умножено на 100, и в соответствующую позицию в выходной строке будет вставлен символ <code>%</code>.
|-
|-


| '''<code>;</code>'''  
| '''<code>;</code>'''  
| Разделитель секций.
| Разделитель секций
| Знак <code>;</code> служит для разделения секций положительных, отрицательных и нулевых чисел в строке формата.
| Знак <code>;</code> служит для разделения секций положительных, отрицательных и нулевых чисел в строке формата.
|}
|}

Версия от 04:16, 19 октября 2026

Format

Функция Параметры Возвращаемое значение
Format string format, params object[] args string

Заменяет каждый элемент формата в указанной строке format значением соответствующего параметра в массиве args.

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

Format("Name = {0}, hours = {1:hh}", myName, DateTime.Now)

содержит элементы формата {0} и {1:hh}. Они заменяются значениями myName и DateTime.Now.

Результат может выглядеть так:

Name = Alex, hours = 12

Элемент формата имеет следующий синтаксис:

{index[,alignment][:formatString]}

где

  • index — обязательный номер значения, которое будет подставлено в это место строки;
  • alignment — необязательная ширина форматированного значения;
  • formatString — необязательный спецификатор формата.

Форматирование числовых значений (стандартное)

Для форматирования числовых значений используются следующие стандартные символы-спецификаторы:

Символ Тип Описание
C или c Валюта Число преобразуется в строку, представляющую денежные единицы.
Format("{0:C}", 10) = "10,00 ₽"
D или d Десятичное число Этот формат доступен только для целых типов. Число преобразуется в строку, состоящую из десятичных цифр (0-9).
Format("{0:D}", 10) = "10"
E или e Научный Число преобразуется в строку вида -d.ddd…E+ddd или -d.ddd…e+ddd, где знак d представляет цифру (0-9).
Format("{0:E}", 10) = "1,000000E+001"
F или f Фиксированная запятая Число преобразуется в строку вида -ddd.ddd…, где знак d представляет цифру (0-9).
Format("{0:F}", 10) = "10,00"
G или g Общий Число преобразуется в наиболее короткую запись.
Format("{0:G}", 10) = "10"
N или n Число Число преобразуется в строку вида -d,ddd,ddd.ddd…, где знак d — цифра (0-9), знак , — разделитель тысяч, а знак . — разделитель целой и дробной части.
Format("{0:N}", 1234.56) = "1 234,56"
P или p Процент Число преобразуется в строку, представляющую проценты. Преобразуемое число умножается на 100, чтобы соответствовать процентам.
Format("{0:P}", 0.15) = "15,00%"
X или x Шестнадцатеричный Этот формат доступен только для целых типов. Число преобразуется в строку шестнадцатеричных знаков. Регистр шестнадцатеричных знаков, превосходящих 9, совпадает с регистром указателя формата.
Format("{0:X}", 26) = "1A"

После символа-спецификатора формата можно указать число. Для чисел с плавающей запятой это будет означать количество знаков после запятой в форматированном значении:

Format("{0:C1}", 12.23) = "12,2 ₽"

Форматирование числовых значений (настраиваемое)

Если стандартных средств форматирования чисел недостаточно, можно использовать символы настраиваемого числового формата:

Символ Назначение Описание
0 Знак-заменитель нуля Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку.

В противном случае 0 отображается в выходной строке.

# Заместитель цифры Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку.

В противном случае в выходной строке ничего не записывается.

. Разделитель дроби Первый знак . в строке формата определяет положение разделителя дроби.
, Разделитель числовых разрядов Знак , в строке формата определяет положение разделителя групп разрядов.
% Заместитель процентов При использовании знака % в строке форматирования число будет умножено на 100, и в соответствующую позицию в выходной строке будет вставлен символ %.
; Разделитель секций Знак ; служит для разделения секций положительных, отрицательных и нулевых чисел в строке формата.

Примеры использования:

Format("{0:#,##0.00 ₽}", 1024.25) = "1 024,25 ₽"
Format("{0:00%}", 0.25) = "25%"
Format("{0:#,##0.00 ₽;(#,##0.00 ₽);Zero}", 1024.25) = "1 024,25 ₽"
Format("{0:#,##0.00 ₽;(#,##0.00 ₽);Zero}", -1024.25) = "(1 024,25 ₽)"
Format("{0:#,##0.00 ₽;(#,##0.00 ₽);Zero}", 0) = "Zero"

Форматирование даты/времени (стандартное)

Для форматирования даты/времени используются следующие стандартные символы-спецификаторы:

Символ Тип Пример
d Короткий шаблон даты "02.04.2024"
D Полный шаблон даты "2 апреля 2024 г."
f Полный шаблон даты и времени (короткий шаблон времени) "2 апреля 2024 г. 20:41"
F Полный шаблон даты и времени (полный шаблон времени) "2 апреля 2024 г. 20:41:33"
g Общий шаблон даты и времени (короткий шаблон времени) "02.04.2024 20:41"
G Общий шаблон даты и времени (полный шаблон времени) "02.04.2024 20:41:33"
t Короткий шаблон времени "20:41"
T Полный шаблон времени "20:41:33"

Форматирование даты/времени (настраиваемое)

Так же можно использовать символы настраиваемого формата даты/времени:

Символ Описание
d Представляет день месяца в виде числа от 1 до 31. Одноразрядные числа форматируются без нуля в начале.
dd Представляет день месяца в виде числа от 01 до 31.
ddd Представляет сокращенное название дня недели.
dddd Представляет полное название дня недели.
f или F Представляет миллисекунды.
h Представляет часы числом от 1 до 12. Одноразрядные числа форматируются без нуля в начале.
hh Представляет часы числом от 01 до 12.
H Представляет часы числом от 0 до 23. Одноразрядные числа форматируются без нуля в начале.
HH Представляет часы числом от 00 до 23.
m Представляет минуты как число от 0 до 59. Одноразрядные числа форматируются без нуля в начале.
mm Представляет минуты как число от 00 до 59.
M Представляет месяц как число от 1 до 12. Одноразрядные числа форматируются без нуля в начале.
MM Представляет месяц как число от 01 до 12.
MMM Представляет сокращенное название месяца.
MMMM Представляет полное название месяца.
s Представляет секунды как число от 0 до 59. Одноразрядные числа форматируются без нуля в начале.
ss Представляет секунды как число от 00 до 59.
y Представляет год как число из одной или двух цифр.
yy Представляет год как число из двух цифр.
yyyy Представляет год как число из четырех цифр.
: Представляет стандартный разделитель времени.
/ Представляет стандартный разделитель даты.

Примеры использования:

Format("{0:d MMM yyyy}", DateTime.Now) = "2 апр 2024"
Format("{0:dd/MM/yyyy}", DateTime.Now) = "02.04.2024"
Format("{0:d MMMM}", DateTime.Now) = "2 апреля"
Format("{0:HH:mm}", DateTime.Now) = "20:41"
Format("{0:dd/MM/yyyy HH:mm}", DateTime.Now) = "02.04.2024 20:41"

FormatCurrency

Функция Параметры Возвращаемое значение
FormatCurrency object value string
FormatCurrency object value, int decimalDigits string

Форматирует значение value как валюту, используя региональные установки Windows. Если указан параметр decimalDigits, результат округляется до соответствующего количества знаков после запятой.

Примеры:

FormatCurrency(1.25) = "1,25 ₽"
FormatCurrency(1.25, 1) = "1,3 ₽"

FormatDateTime

Функция Параметры Возвращаемое значение
FormatDateTime DateTime value string
FormatDateTime DateTime value, string format string

Форматирует значение value как дату/время. Данная функция не возвращает дату или время, если соответствующие части имеют пустые значения. Пустой датой считается дата 1/1/1, пустым временем - 0:00:00.

При использовании именованного формата format допустимы следующие значения:

  • Long Date;
  • Short Date;
  • Long Time;
  • Short Time.

Примеры:

FormatDateTime(new DateTime(2024,4,2)) = "02.04.2024"
FormatDateTime(new DateTime(2024,4,2,1,30,0)) = "02.04.2024 1:30:00"
FormatDateTime(new DateTime(1,1,1,1,30,1)) = "1:30:01"
FormatDateTime(new DateTime(2024,4,2,1,30,0), "Long Date") = "2 апреля 2024 г."
FormatDateTime(new DateTime(2024,4,2), "Short Date") = "02.04.2024"
FormatDateTime(new DateTime(1,1,1,1,30,1), "Long Time") = "1:30:01"
FormatDateTime(new DateTime(1,1,1,1,30,1), "Short Time") = "01:30"

FormatNumber

Функция Параметры Возвращаемое значение
FormatNumber object value string
FormatNumber object value, int decimalDigits string

Форматирует значение value как число, используя региональные установки Windows. Если указан параметр decimalDigits, результат округляется до соответствующего количества знаков после запятой.

Примеры:

FormatNumber(1234.56) = "1 234,56"
FormatNumber(1234.56, 1) = "1 234,6"

FormatPercent

Функция Параметры Возвращаемое значение
FormatPercent object value string
FormatPercent object value, int decimalDigits string

Форматирует значение value как процент, используя региональные установки Windows. Если указан параметр decimalDigits, результат округляется до соответствующего количества знаков после запятой.

Примеры:

FormatPercent(0.15) = "15,00%"
FormatPercent(0.15, 0) = "15%"