Format
 
Форматирует число в указанном формате

Синтаксис

Declare Function Format ( ByVal numerical_expression As Double, ByRef formatting_expression As Const String = "
" ) As String

Использование

#include "string.bi"
result = Format[$]( numerical_expression, formatting_expression )

Параметры

numerical_expression
число для форматирования
formatting_expression
шаблон форматирования

Возвращаемое значение

Format возвращает строку с результатом численного выражения отформатированную как указано в выражении форматирования.
Выражение форматирования является строкой, которая может дать значения чисел или даты времени.

Описание

Чтобы восстановить значения даты времени , численное выражение должно быть серийной датой, полученной из соответствующих функций.
Эта функция является частью FreeBASIC, однако она не распознается компилятором, если не подключен файл vbcompat.bi.

"Числовые форматы"
Символ Описание
Пустая строка Общий формат (без форматирования)
0

Местозаполнитель для цифры. Отображается цифра или ноль. Если в выражении на позиции, где в строке форматирования стоит ноль, имеется цифра, то отображается цифра, в противном случае на этой позиции отображается ноль.

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

#

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

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

. Местозаполнитель для десятичного разделителя. Местозаполнитель для десятичного разделителя определяет количество цифр, отображаемых слева и справа от десятичного разделителя. Если выражение форматирования слева от этого символа содержит только знаки #, числа меньше 1 начинаются с десятичного разделителя. Чтобы отобразить ноль, стоящий перед дробными числами, используйте ноль в качестве местозаполнителя для первой цифры слева от десятичного разделителя. В некоторых языковых и региональных стандартах в качестве десятичного разделителя используется запятая. Символ, применяемый в качестве местозаполнителя для десятичного разделителя в отформатированном выходном файле, зависит от числового формата, распознаваемого системой. Поэтому в собственных форматах следует использовать в качестве местозаполнителя для десятичного разделителя точку, даже если по региональным стандартам используется запятая. Отформатированная строка будет отображаться в соответствии с региональными стандартами.
% Процент: выражение умножается на 100 и вставляется символ %.
,

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

Если разделитель тысяч стоит непосредственно слева от десятичного разделителя (независимо от того, указаны или нет десятичные знаки) или является крайним правым знаком в строке, это означает, что число следует разделить на 1 тысячу и округлить в соответствии с правилами. Числа от 500 до 1 000 отображаются как 1, а числа меньше 500 отображаются как 0. Два стоящих подряд тысячных разделителя на этой позиции означают, что число следует делить на 1 миллион, а с прибавлением каждого последующего разделителя еще раз на 1 тысячу.

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

Рассмотрим следующие три строки форматирования:

  • "#,0." — использует разделители тысяч для форматирования числа 100 миллионов в строку "100,000,000".

  • "#0,." — использует деление на тысячу для форматирования числа 100 миллионов в строку "100000".

  • "#,0,." — использует разделитель тысяч и деление на тысячу для форматирования числа 100 миллионов в строку "100,000".

E- E+ e- e+ Экспоненциальный формат. Если выражение формата содержит хотя бы один местозаполнитель для цифры (0 или #) слева от E-, E+, e- или e+, число отображается в экспоненциальном формате и E или e вставляется между числом и его степенью. Число местозаполнителей для цифр слева определяет число цифр в экспоненте. Чтобы поместить знак минуса рядом с отрицательной экспонентой, следует использовать E- или e-. Чтобы поместить знак минуса рядом с отрицательной экспонентой и знак плюса рядом с положительной, следует использовать E+ или e+. Для правильного форматирования следует поместить местозаполнители для цифр справа от данного символа.
: ? + $ () пробел Буквенные символы. Данные символы отображаются так же, как в строке форматирования. Чтобы отобразить символ, отличающегося от перечисленных, следует поставить перед ним обратную косую черту (\) или заключить его в двойные кавычки (" ").
\

Отображается следующий символ в строке форматирования. Чтобы отобразить символ, обладающий в качестве буквенного знака специальным значением, следует поставить перед ним обратную косую черту (\). Сама обратная косая черта не отображается. Использование обратной косой черты аналогично заключению выводимого символа в двойные кавычки. Чтобы отобразить обратную косую черту, следует использовать ее два раза подряд (\\).

В качестве буквенных символов не могут быть использованы знаки, используемые при форматировании даты и времени (a, c, d, h, m, n, p, q, s, t, w, y, / и :), числовом форматировании ((#, 0, %, E, e, запятая и точка) и форматировании строк (@, &, <, > и !).

текст между двойными кавычками Отображает текст внутри кавычек.
: Временной разделитель используется для разделения часов, минут и секунд при форматировании значений времени.
/ Разделитель компонентов даты используется для разделения дня, месяца и года при форматировании значений дат.


"Форматы даты-времени:"
Symbol Description
d, dd Отображение дня в виде одной цифры/2 цифр (1-31/01-31)
ddd день недели в строковом виде (Пн , Вт . Ср ...)
dddd день недели в полном строковом виде (Понедельник Вторник ...)
ddddd полная дата в виде (03.05.2000)
m, mm Отображение месяца в виде одной цифры/2 цифр (1-12/01-12). Если сразу же после h или hh, минуты, вместо того, чтобы месяц отображался
M, MM Отображение месяца в одной цифры/2 цифр (1-12/01-12), даже если сразу после h или hh
mmm месяц в сокращенном строковом представлении (Сен , Окт)
mmmm месяц в полном строковом представлении (Сентябрь , Октябрь)
y, yy Отображения года в виде двух цифр (00-99)
yyyy Отобразить год как четырехзначное число (1900-2040)
h, hh Отображение часа как одна цифра/2 цифры (0-23/00-23)
m, mm Отображение минут в виде одной цифры/2 цифр (0-59/00-59). Если не отображается сразу же после h или hh, месяц, а не минуты
n, nn Отображение минут в виде одной цифры/2 цифр (0-59/00-59), даже если не сразу после h или hh
s, ss Отображение секунд как одна цифра/2 цифры (0-59/00-59)
ttttt полное время в формате час : минуты : секунды (13:15:24)
AM/PM (по умолчанию), am/pm Добавление этих символов форматирует отображение времени в 12 часовом формате времени. Время будет отображаться в виде (12:32:11 PM)
A/P, a/p Добавление этих символов форматирует отображение времени в 12 часовом формате времени. Время будет отображаться в виде (12:32:11 P)



Пример

Примеры числовых форматов
Format (fmt)                  5             -5            .5
	    
	    Пустая строка                   5             -5            0.5
	    0                             5             -5            1
	    0.00                          5.00          -5.00         0.50
	    #,##0                         5             -5            1
	    #,##0.00                      5.00          -5.00         0.50
	    0%                            500%          -500%         50%
	    0.00%                         500.00%       -500.00%      50.00%
	    0.00E+00                      5.00E+00      -5.00E+00     5.00E-01
	    0.00E-00                      5.00E00       -5.00E00      5.00E-01
 Пример форматирования даты и времени
Ниже приведены примеры форматов даты и времени:
	     Выражение форматирования     Отображение
	     m/d/yy                 12/7/58
	     d-mmmm-yy              7-December-58
	     d-mmmm                 7-December
	     mmmm-yy                December-58
	     h:mm AM/PM             8:50 PM
	     h:mm:ss AM/PM          8:50:35 PM
	     h:mm                   20:50
	     h:mm:ss                20:50:35
	     m/d/yy h:mm            12/7/58 20:50 

Различия диалектов

Нет

Отличия от QB

  • Не существует в QB 4.5. Эта функция появилась впервые в PDS 7.1

См. также