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

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

Материал из Химсофт Вики
 
(не показано 11 промежуточных версий этого же участника)
Строка 40: Строка 40:
! Тип  
! Тип  
! Описание
! Описание
! style="width: 300px;" | Пример
|-
|-


| '''<code>C</code>''' или '''<code>c</code>''' || Валюта || Число преобразуется в строку, представляющую денежные единицы. <br /><code>Format("{0:C}", 10) = "10,00 ₽"</code>
| '''<code>C</code>''' или '''<code>c</code>'''  
| Валюта  
| Число преобразуется в строку, представляющую денежные единицы.  
| <code>Format("{0:C}", 10) = "10,00 ₽"</code>
|-
|-


| '''<code>D</code>''' или '''<code>d</code>''' || Десятичное число || Этот формат доступен только для целых типов. Число преобразуется в строку, состоящую из десятичных цифр (0-9).<br /><code>Format("{0:D}", 10) = "10"</code>
| '''<code>D</code>''' или '''<code>d</code>'''  
| Десятичное число  
| Этот формат доступен только для целых типов. Число преобразуется в строку, состоящую из десятичных цифр (0-9).
| <code>Format("{0:D}", 10) = "10"</code>
|-
|-


| '''<code>E</code>''' или '''<code>e</code>''' || Научный || Число преобразуется в строку вида <code>-d.ddd…E+ddd</code> или <code>-d.ddd…e+ddd</code>, где знак <code>d</code> представляет цифру (0-9).<br /><code>Format("{0:E}", 10) = "1,000000E+001"</code>
| '''<code>E</code>''' или '''<code>e</code>'''  
| Научный  
| Число преобразуется в строку вида <code>-d.ddd…E+ddd</code> или <code>-d.ddd…e+ddd</code>, где знак <code>d</code> представляет цифру (0-9).
| <code>Format("{0:E}", 10) = "1,000000E+001"</code>
|-
|-


| '''<code>F</code>''' или '''<code>f</code>''' || Фиксированная запятая || Число преобразуется в строку вида <code>-ddd.ddd…</code>, где знак <code>d</code> представляет цифру (0-9).<br /><code>Format("{0:F}", 10) = "10,00"</code>
| '''<code>F</code>''' или '''<code>f</code>'''  
| Фиксированная запятая  
| Число преобразуется в строку вида <code>-ddd.ddd…</code>, где знак <code>d</code> представляет цифру (0-9).
| <code>Format("{0:F}", 10) = "10,00"</code>
|-
|-


| '''<code>G</code>''' или '''<code>g</code>''' || Общий || Число преобразуется в наиболее короткую запись.<br /><code>Format("{0:G}", 10) = "10"</code>
| '''<code>G</code>''' или '''<code>g</code>'''  
| Общий  
| Число преобразуется в наиболее короткую запись.
| <code>Format("{0:G}", 10) = "10"</code>
|-
|-


| '''<code>N</code>''' или '''<code>n</code>''' || Число || Число преобразуется в строку вида <code>-d,ddd,ddd.ddd…</code>, где знак <code>d</code> — цифра (0-9), знак <code>,</code> — разделитель тысяч, а знак <code>.</code> — разделитель целой и дробной части.<br /><code>Format("{0:N}", 1234.56) = "1 234,56"</code>
| '''<code>N</code>''' или '''<code>n</code>'''  
| Число  
| Число преобразуется в строку вида <code>-d,ddd,ddd.ddd…</code>, где знак <code>d</code> — цифра (0-9), знак <code>,</code> — разделитель тысяч, а знак <code>.</code> — разделитель целой и дробной части.
| <code>Format("{0:N}", 1234.56) = "1 234,56"</code>
|-
|-


| '''<code>P</code>''' или '''<code>p</code>''' || Процент || Число преобразуется в строку, представляющую проценты. Преобразуемое число умножается на 100, чтобы соответствовать процентам.<br /><code>Format("{0:P}", 0.15) = "15,00%"</code>
| '''<code>P</code>''' или '''<code>p</code>'''  
| Процент  
| Число преобразуется в строку, представляющую проценты. Преобразуемое число умножается на 100, чтобы соответствовать процентам.
| <code>Format("{0:P}", 0.15) = "15,00%"</code>
|-
|-


| '''<code>X</code>''' или '''<code>x</code>''' || Шестнадцатеричный || Этот формат доступен только для целых типов. Число преобразуется в строку шестнадцатеричных знаков. Регистр шестнадцатеричных знаков, превосходящих 9, совпадает с регистром указателя формата.<br /><code>Format("{0:X}", 26) = "1A"</code>
| '''<code>X</code>''' или '''<code>x</code>'''  
| Шестнадцатеричный  
| Этот формат доступен только для целых типов. Число преобразуется в строку шестнадцатеричных знаков. Регистр шестнадцатеричных знаков, превосходящих 9, совпадает с регистром указателя формата.
| <code>Format("{0:X}", 26) = "1A"</code>
|}
|}


Строка 76: Строка 101:
{|class="wikitable" style="background-color: #fff;"
{|class="wikitable" style="background-color: #fff;"
|-
|-
! Символ !! Описание
! Символ  
! Назначение
! Описание
|-
|-


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


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


Строка 114: Строка 155:
|-
|-


| d || Короткий шаблон даты || "02.04.2024"
| '''<code>d</code>''' || Короткий шаблон даты || <code>02.04.2024</code>
|-
|-


| D || Полный шаблон даты || "2 апреля 2024 г."
| '''<code>D</code>''' || Полный шаблон даты || <code>2 апреля 2024 г.</code>
|-
|-


| f || Полный шаблон даты и времени (короткий шаблон времени) || "2 апреля 2024 г. 20:41"
| '''<code>f</code>''' || Полный шаблон даты и времени (короткий шаблон времени) || <code>2 апреля 2024 г. 20:41</code>
|-
|-


| F || Полный шаблон даты и времени (полный шаблон времени) || "2 апреля 2024 г. 20:41:33"
| '''<code>F</code>''' || Полный шаблон даты и времени (полный шаблон времени) || <code>2 апреля 2024 г. 20:41:33</code>
|-
|-


| g || Общий шаблон даты и времени (короткий шаблон времени) || "02.04.2024 20:41"
| '''<code>g</code>''' || Общий шаблон даты и времени (короткий шаблон времени) || <code>02.04.2024 20:41</code>
|-
|-


| G || Общий шаблон даты и времени (полный шаблон времени) || "02.04.2024 20:41:33"
| '''<code>G</code>''' || Общий шаблон даты и времени (полный шаблон времени) || <code>02.04.2024 20:41:33</code>
|-
|-


| t || Короткий шаблон времени || "20:41"
| '''<code>t</code>''' || Короткий шаблон времени || <code>20:41</code>
|-
|-


| T || Полный шаблон времени || "20:41:33"
| '''<code>T</code>''' || Полный шаблон времени || <code>20:41:33</code>
|}
|}


Строка 146: Строка 187:
|-
|-
|'''<code>d</code>'''
|'''<code>d</code>'''
|Представляет день месяца в виде числа от 1 до 31. Одноразрядные числа форматируются без нуля в начале.
|Представляет день месяца в виде числа от <code>1</code> до <code>31</code>. Одноразрядные числа форматируются без нуля в начале.
|-
|-
|'''<code>dd</code>'''
|'''<code>dd</code>'''
|Представляет день месяца в виде числа от 01 до 31.
|Представляет день месяца в виде числа от <code>01</code> до <code>31</code>.
|-
|-
|'''<code>ddd</code>'''
|'''<code>ddd</code>'''
Строка 161: Строка 202:
|-
|-
|'''<code>h</code>'''
|'''<code>h</code>'''
|Представляет часы числом от 1 до 12. Одноразрядные числа форматируются без нуля в начале.
|Представляет часы числом от <code>1</code> до <code>12</code>. Одноразрядные числа форматируются без нуля в начале.
|-
|-
|'''<code>hh</code>'''
|'''<code>hh</code>'''
|Представляет часы числом от 01 до 12.
|Представляет часы числом от <code>01</code> до <code>12</code>.
|-
|-
|'''<code>H</code>'''
|'''<code>H</code>'''
|Представляет часы числом от 0 до 23. Одноразрядные числа форматируются без нуля в начале.
|Представляет часы числом от <code>0</code> до <code>23</code>. Одноразрядные числа форматируются без нуля в начале.
|-
|-
|'''<code>HH</code>'''
|'''<code>HH</code>'''
|Представляет часы числом от 00 до 23.
|Представляет часы числом от <code>00</code> до <code>23</code>.
|-
|-
|'''<code>m</code>'''
|'''<code>m</code>'''
|Представляет минуты как число от 0 до 59. Одноразрядные числа форматируются без нуля в начале.
|Представляет минуты как число от <code>0</code> до <code>59</code>. Одноразрядные числа форматируются без нуля в начале.
|-
|-
|'''<code>mm</code>'''
|'''<code>mm</code>'''
|Представляет минуты как число от 00 до 59.
|Представляет минуты как число от <code>00</code> до <code>59</code>.
|-
|-
|'''<code>M</code>'''
|'''<code>M</code>'''
|Представляет месяц как число от 1 до 12. Одноразрядные числа форматируются без нуля в начале.
|Представляет месяц как число от <code>1</code> до <code>12</code>. Одноразрядные числа форматируются без нуля в начале.
|-
|-
|'''<code>MM</code>'''
|'''<code>MM</code>'''
|Представляет месяц как число от 01 до 12.
|Представляет месяц как число от <code>01</code> до <code>12</code>.
|-
|-
|'''<code>MMM</code>'''
|'''<code>MMM</code>'''
Строка 191: Строка 232:
|-
|-
|'''<code>s</code>'''
|'''<code>s</code>'''
|Представляет секунды как число от 0 до 59. Одноразрядные числа форматируются без нуля в начале.
|Представляет секунды как число от <code>0</code> до <code>59</code>. Одноразрядные числа форматируются без нуля в начале.
|-
|-
|'''<code>ss</code>'''
|'''<code>ss</code>'''
|Представляет секунды как число от 00 до 59.
|Представляет секунды как число от <code>00</code> до <code>59</code>.
|-
|-
|'''<code>y</code>'''
|'''<code>y</code>'''
Строка 234: Строка 275:
|}
|}


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


'''Примеры:'''
'''Примеры:'''
Строка 254: Строка 297:
|}
|}


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


При использовании именованного формата <code>format</code> допустимы следующие значения:
При использовании именованного формата <code>format</code> допустимы следующие значения:
Строка 285: Строка 332:
|}
|}


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


'''Примеры:'''
'''Примеры:'''
Строка 305: Строка 354:
|}
|}


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


'''Примеры:'''
'''Примеры:'''

Текущая версия от 04:29, 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%"