Функции и процедуры Delphi. Справочник.

 

Не знаешь, где искать?
Читай Delphi FAQ!

 


IV. ФУНКЦИИ И ПРОЦЕДУРЫ ДЛЯ РАБОТЫ С ПЕРЕМЕННЫМИ РАЗЛИЧНЫХ ТИПОВ ДАННЫХ

1. Преобразование чисел с плавающей запятой


Функция FloatToStrF(
Value: Extended;
Format: TFloatFormat;
Precision, Digits: Integer ): string;


Модуль: SysUtils

type TFloatFormat =
(ffGeneral, ffExponent, ffFixed, ffNumber, ffCurrency);

Описание
Функция преобразовывает число с плавающей запятой Value в его строковое представление, используя заданный формат. Параметр Precision определяет количество знаков в результирующем значении, которое должно находиться в следующих пределах:

Тип Precision Тип Precision Тип Precision
Single <= 7 Double <= 15 Extended <= 18

Назначение параметра Digits зависит от специфики выбранного формата (См. ниже). Параметр Format определяет формат результирующей строки. Возможны следующие значения параметра Format:

ВеличинаЗначение
ffGeneral Общий числовой формат. Число преобразовывается в наиболее возможно короткую десятичную строку, используя фиксированный (ffFixed) или научный формат (ffExponent). Нули в конце числа удаляются. Десятичная точка ставится только в случае необходимости. Фиксированный формат применяется, когда в значении Value количество цифр, стоящих слева от десятичной точки, меньше либо равно Precision или, когда Value>=0.00001. В противном случае, применяется научный формат, а параметр Digits определяет минимальное число цифр в экспоненте (0.. 4).
ffExponentНаучный формат. Число преобразуется в строку формата
"-x.xxx…E+xxxx". Строка начинается со знака "-" (если число отрицательное). Десятичной точке всегда предшествует одна цифра. Параметр Precision определяет общее количество десятичных цифр, стоящих до символа экспоненты "E" (включая цифру слева от десятичного разделителя). За символом экспоненты следует знак плюс или минус и до 4 цифр, определяющих степень экспоненты. Минимальное число цифр в экспоненте указывается в параметре Digits.
ffFixedФиксированный формат. Значение преобразуется в строку вида "-ххх.ххх…". Если число отрицательное, то впереди строки будет поставлен знак "-". Десятичной точке всегда предшествует минимум одна цифра. Количество значащих цифр после десятичной точки (0…18) указывается в параметре Digits. Если количество разрядов слева от разделителя превышает значение, указанное в параметре Precision, то для форматирования будет использоваться научный формат (ffExponent).
ffNumberЧисловой формат. Значение будет преобразовано в строку следующего вид "-х,ххх,ххх.ххх…". Данный формат аналогичен формату ffFixed, за исключением того, что полученная строка будет содержать еще и разделители тысяч.
ffCurrencyДенежный формат. Значение преобразовывается в строку, представляющую денежную величину. Количество значащих цифр после десятичной точки (0…18) определяется параметром Digits. Преобразование управляется глобальными переменными CurrencyString, CurrencyFormat, DecimalSeparator NegCurrFormat и ThousandSeparator, значения которых устанавливаются в диалоговом окне 'Язык и стандарты' панели управления Windows.

Пример
var
   Sum: Extended;
   SumStr: string;
begin
   Sum:= 10255.2;
   SumStr:= FloatToStrF( Sum, ffCurrency,18,2);       { SumStr := '10 255,20р' }
   MessageDlg( SumStr, mtInformation, [mbOk], 0);
end;


[Вернуться к содержанию]

 


Рейтинг@Mail.ru