Функція 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 — перетворює числовий рядок у грошовий вираз.
