Delphi тип TFloatFormat – формати, що використовуються у функціях відображення чисел з плаваючою комою.
SysUtils unit
type TFloatFormat = (ffGeneral, ffExponent, ffFixed, ffNumber, ffCurrency);
Тип TFloatFormat використовується наступними SysUtils функціями:
- CurrToStrF – для відображення значень валют.
- FloatToStrF – для відображення чисел з плаваючою комою.
- FloatToText – для форматування до масиву.
Можливі значення TFloatFormat:
ffGeneral
Визначає універсальне числове форматування, яке прагне зберегти результуюче значення якомога компактніше. Він видаляє кінцеві нулі та десяткову точку, де можливо. Жодні роздільники тисяч не показуються. Формат експоненти використовується, якщо мантиса є занадто великою для вказаного значення Precision команди форматування. У цьому випадку, значення Digits (0.. 4) визначає мінімальну кількість показуваних цифр експоненти. Символ десяткової точки визначено змінною DecimalSeparator. ffExponent
Зазвичай званий як Науковий або Інженерний формат експонента відображається символом E наступна за числом. Запис E+15 означає 1015. Експонент завжди має знак + або -. Цій експоненті передує число, яке завжди має одну цифру перед десятковою точкою.
Наприклад: 123.456 форматується як 1.23456E+2; 0.00123 форматується як 1.23E-3.
Параметр Precision, що використовується функцією, дає число відображуваних цифр перед E, а параметр Digits дає число цифр (0..4) після E.
Символ десяткової точки визначено змінною DecimalSeparator.
ffFixed
Цей формат також не використовує жодних роздільників тисяч. Він відображає Precision цифр перед десятковою точкою, та Digits цифр після. Якщо занадто багато цифр перед десятковою точкою, замість цього використовується формат експоненти.
Символ десяткової точки визначено змінною DecimalSeparator.
ffNumber
Те ж саме, що і ffFixed, за винятком того, що використовується роздільник тисяч. Вони визначені змінною ThousandSeparator.
ffCurrency
Те ж саме, що і ffNumber, але з додаванням символу (рядка) грошової одиниці, визначеного змінною CurrencyString. Додатково, на форматування впливають змінні CurrencyFormat та NegCurrFormat.
Тип TFloatFormat у Delphi: Ілюстрація 5 різних типів форматування
var
amount : Extended;
begin
amount := 1234.56;
// Відображення за допомогою форматування ffGeneral
ShowMessage('General 4,0 = '+FloatToStrF(amount, ffGeneral, 4, 0));
ShowMessage('General 6,0 = '+FloatToStrF(amount, ffGeneral, 6, 0));
ShowMessage('General 6,2 = '+FloatToStrF(amount, ffGeneral, 6, 2));
ShowMessage('General 3,2 = '+FloatToStrF(amount, ffGeneral, 3, 2));
ShowMessage('');
// Відображення за допомогою форматування ffExponent
ShowMessage('Exponent 4,0 = '+FloatToStrF(amount, ffExponent, 4, 0));
ShowMessage('Exponent 6,0 = '+FloatToStrF(amount, ffExponent, 6, 0));
ShowMessage('Exponent 6,2 = '+FloatToStrF(amount, ffExponent, 6, 2));
ShowMessage('Exponent 3,2 = '+FloatToStrF(amount, ffExponent, 3, 2));
ShowMessage('');
// Відображення за допомогою форматування ffFixed
ShowMessage('Fixed 4,0 = '+FloatToStrF(amount, ffFixed, 4, 0));
ShowMessage('Fixed 6,0 = '+FloatToStrF(amount, ffFixed, 6, 0));
ShowMessage('Fixed 6,2 = '+FloatToStrF(amount, ffFixed, 6, 2));
ShowMessage('Fixed 3,2 = '+FloatToStrF(amount, ffFixed, 3, 2));
ShowMessage('');
// Відображення за допомогою форматування ffNumber
ShowMessage('Number 4,0 = '+FloatToStrF(amount, ffNumber, 4, 0));
ShowMessage('Number 6,0 = '+FloatToStrF(amount, ffNumber, 6, 0));
ShowMessage('Number 6,2 = '+FloatToStrF(amount, ffNumber, 6, 2));
ShowMessage('Number 3,2 = '+FloatToStrF(amount, ffNumber, 3, 2));
ShowMessage('');
// Відображення за допомогою форматування ffCurrency
ShowMessage('Currency 4,0 = '+FloatToStrF(amount, ffCurrency, 4, 0));
ShowMessage('Currency 6,0 = '+FloatToStrF(amount, ffCurrency, 6, 0));
ShowMessage('Currency 6,2 = '+FloatToStrF(amount, ffCurrency, 6, 2));
ShowMessage('Currency 3,2 = '+FloatToStrF(amount, ffCurrency, 3, 2));
end;
Результат
General 4,0 = 1235
General 6,0 = 1234.56
General 6,2 = 1234.56
General 3,2 = 1.23E03
Exponent 4,0 = 1.235E+3
Exponent 6,0 = 1.23456E+3
Exponent 6,2 = 1.23456E+03
Exponent 3,2 = 1.23E+03
Fixed 4,0 = 1235
Fixed 6,0 = 1235
Fixed 6,2 = 1234.56
Fixed 3,2 = 1.23E03
Number 4,0 = 1,235
Number 6,0 = 1,235
Number 6,2 = 1,234.56
Number 3,2 = 1.23E03
Currency 4,0 = ?1,235
Currency 6,0 = ?1,235
Currency 6,2 = ?1,234.56
Currency 3,2 = 1.23E03
Подібні функції, процедури та команди
CurrencyDecimals — визначає число десяткових цифр у функції Format.
CurrencyFormat — визначає розміщення рядка валюти у функції показу валюти.
CurrencyString — рядок валюти, що використовується у функціях відображення валюти.
CurrToStrF — перетворює грошову величину на рядок з форматуванням.
DecimalSeparator — символ, який використовується для відображення десяткової точки.
FloatToStrF — перетворює значення з плаваючою комою в рядок з форматуванням.
NegCurrFormat — визначає відображення негативної кількості форматованої валюти.
ThousandSeparator — символ, який використовується для відображення роздільника тисяч.