Функция FormatCurr в Delphi – расширенное форматирование значений валюты в строку.
SysUtils unit
- function FormatCurr (const Formatting : string; Value : Currency) : string;
- function FormatCurr (const Formatting : string; Value : Currency; FormatSettings : TFormatSettings) : string;
Функция FormatCurr обеспечивает расширенное Форматирование Значения (Value) валюты в строку.
Форматируемая строка может содержать соединение текста свободного формата и управляющих символов:
- 0 — Вызывает отображение цифр или 0;
- # — Дополнительное цифровое отображение;
- , — Вызывает отображение тысяч;
- . — Вызывает отображение десятичных чисел;
- E+ — Вызывает отображение знаковой экспоненты;
- E- — Дополнительное отображение знака экспоненты;
- ; — Разделитель положительных, отрицательных и нулевых значений.
Их лучше всего понять посмотрев на типовой код.
Версия 2 этой функции – для использования в пределах потоков. Вы заполняете запись FormatSettings перед вызовом запроса. Она получает локальную копию глобальной форматирующей переменной, которая делает вашу подпрограмму потокобезопасной.
Функция FormatCurr: Показ всех форматируемых типов данных
var
curr : Currency;
begin
// Установка нашего числа с плавающей запятой
curr := 1234.567;
// Отображение типового значения, используя все варианты формата
// Округление десятичного значения
ShowMessage('##### : '+FormatCurr('#####', curr));
ShowMessage('00000 : '+FormatCurr('00000', curr));
ShowMessage('0 : '+FormatCurr('0' , curr));
ShowMessage('#,##0 : '+FormatCurr('#,##0', curr));
ShowMessage(',0 : '+FormatCurr(',0' , curr));
ShowMessage('');
// Включение десятичного значения
ShowMessage('0.#### : '+FormatCurr('0.####', curr));
ShowMessage('0.0000 : '+FormatCurr('0.0000', curr));
ShowMessage('');
// Научный формат
ShowMessage('0.0000000E+00 : '+FormatCurr('0.0000000E+00', curr));
ShowMessage('0.0000000E-00 : '+FormatCurr('0.0000000E-00', curr));
ShowMessage('#.#######E-## : '+FormatCurr('#.#######E-##', curr));
ShowMessage('');
// Включение текст свободного формата
ShowMessage('"Value = "0.0 : '+FormatCurr('"Value = "0.0', curr));
ShowMessage('');
// Различное форматирование для отрицательных чисел
curr := 1234.567;
ShowMessage('0.0 : '+FormatCurr('0.0' , -curr));
ShowMessage('0.0 "CR";0.0 "DB" : '+
FormatCurr('0.0 "CR";0.0 "DB"', -curr));
ShowMessage('0.0 "CR";0.0 "DB" : '+
FormatCurr('0.0 "CR";0.0 "DB"', curr));
ShowMessage('');
// Различный формат для нулевого значения
curr := 0.0;
ShowMessage('0.0 : '+FormatCurr('0.0' , curr));
ShowMessage('0.0;-0.0;"Nothing" : '+
FormatCurr('0.0;-0.0;"Nothing"', curr));
end;
Результат
##### : 1235
00000 : 01235
0 : 1235
#,##0 : 1,235
,0 : 1,235
0.#### : 1234.567
0.0000 : 1234.5670
0.0000000E+00 : 1.2345670E+03
0.0000000E-00 : 1.2345670E03
#.#######E-## : 1.234567E3
"Value = " : Value = 1234.6
0.0 : -1234.6
0.0 "CR";0.0 "DB" : 1234.6 DB
0.0 "CR";0.0 "DB" : 1234.6 CR
0.0 : 0.0
0.0;-0.0;"Nothing" : Nothing
Похожие функции, процедуры и команды
CurrToStrF — преобразует денежную величину в строку с форматированием.
Format — расширенное форматирование чисел и текста в строке.
FormatDateTime — расширенное форматирование переменной TDateTime в строку.
FormatFloat — расширенное форматирование числа с плавающей запятой в строку.
StrToCurr — преобразует числовую строку в денежное выражение.
