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

 

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

 


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

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


Функция FormatFloat(
const Format: string;
Value: Extended ): string;


Модуль: SysUtils

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

Символ Описание
0 В данную позицию записывается цифра. Если исходное значение в данной позиции содержит цифру, то она записывается в соответствующую позицию результирующей строки, иначе в данную позицию будет записан '0'.
# В данную позицию записывается цифра. Если исходное значение в данной позиции содержит цифру, то она записывается в соответствующую позицию результирующей строки, иначе в данную позицию ничего не записывается.
. Данный символ, встречающийся в маске первый раз, определяет расположение десятичного разделителя. Любой последующий символ '.' игнорируется. Символ, который будет использован в качестве десятичного разделителя в результирующей строке, определяется глобальной переменной DecimalSeparator.
, Если маска содержит данный символ, то в отформатированной строке, между каждой группой из трех цифр слева от десятичной точки, будут вставлены разделители тысяч. Положение и количество символов ',' в маске на результат не влияет. Символ, который будет использован в качестве разделителя тысяч, определяется глобальной переменной ThousandSeparator.
E+ Экспоненциальный формат. Если любая из строк: 'E+', 'E-', 'e+', 'e-', содержится в строке формата, то результирующее значение будет представлено в экспоненциальном виде. За одной из вышеуказанных строк может следовать до четырех символов '0', определяющих мини-мальное число цифр в экспоненте.
'xx' "xx" Символы, заключенные в двойные или одиночные кавычки, не форматируются и выводятся один к одному как есть.
; Отделяет в маске варианты форматирования для положительного, отрицательного и нулевого значения (См. далее).

Позиции крайнего левого '0', расположенного до десятичной точки, и крайнего правого '0' после десятичной точки в маске определяют количество цифровых знаков, которые обязательно должны присутствовать в отформатированной строке. Форматируемое значение всегда округляется до разрядов, которые содержат символы '0' или '#' справа от десятичной точки. Если маска не содержит десятичной точки, то форматируемое значение округляется к ближайшему целому числу. Если форматируемое значение слева от десятичного разделителя содержит больше цифр, чем указано в маске, то "лишние" цифры выводятся до первого символа форматирования. Для того, чтобы допустить несколько вариантов форматирования, различных для положительного, отрицательного и нулевого значения, маска может состоять из одного, двух или трех разделов, разделенных точками с запятой.

Один раздел: строка формата применяется ко всем значениям.

Два раздела: первый раздел применяется к положительным и нулевым значениям, а второй - к отрицательным значениям.

Три раздела: первый раздел применяется к положительным значениям, второй - к отрицательным значениям, третий - к 0.
Если раздел для отрицательных значений или для значения 0 пуст, то используется форматирование, определенное для положительных значений. Если раздел для положительных значений пуст, или вся строка формата пуста, то значение форматируется, используя общее форматирование чисел с плавающей запятой (вызов функции FloatToStrF с параметром Precision=15 и Format=ffGeneral). Данное форматирование используется так же, когда значение содержит более 18 разрядов слева от десятичной точки, а в маске не определен экспоненциальный формат.

Пример
var
   S: string;
begin
   S:= FormatFloat( '#.##', Pi);       // S:= '3.14'
   MessageDlg( 'Pi:= '+ S, mtInformation, [mbOk], 0);
end;


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

 


Рейтинг@Mail.ru