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 — символ, используемый для отображения разделителя тысяч.
