Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
82
Добавлен:
27.03.2015
Размер:
71.17 Кб
Скачать

Функция FloatToStrF

Конвертирует вещественное значение Value в строку, форматируя ее согласно заданным format, precision и digits.

AnsiString FloatToStrF(double value, TFloatFormat format, int precision, int digits);

Прототип в файле: SysUtils

Параметр precision определяет количество знаков в результирующем значении, которое должно находиться в следующих пределах:

Тип value

precision

float

<= 7

double

<= 15

long double

<= 18

Назначение параметра Digits зависит от типа выбранного формата.

Параметр format определяет формат результирующей строки. Возможны следующие значения параметра:

ffGeneral

Основной числовой формат

ffExponent

Научный формат

ffFixed

Формат с фиксированной запятой

ffNumber

Числовой формат

ffCurrency

Монетарный формат

Величина

Значение

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.

Примеры преобразования числа double a = 1234.567 по разным форматам.

Формат вывода

Полученная строка

FloatToStrF(a, ffExponent, 8, 4)

1.2345670E+0003

FloatToStrF(a, ffExponent, 4, 4)

1.235E+0003

FloatToStrF(a, ffExponent, 4, 2)

1.235E+03

FloatToStrF(a, ffExponent, 2, 4)

1.2E+0003

FloatToStrF(a, ffFixed, 8, 4)

1234.5670

FloatToStrF(a, ffFixed, 4, 4)

1235.0000

FloatToStrF(a, ffFixed, 4, 2)

1235.00

FloatToStrF(a, ffFixed, 2, 4)

1.2E0003

FloatToStrF(a, ffGeneral, 8, 4)

1234.567

FloatToStrF(a, ffGeneral, 4, 4)

1235

FloatToStrF(a, ffGeneral, 4, 2)

1235

FloatToStrF(a, ffGeneral, 2, 4)

1.2E0003

FloatToStrF(a, ffNumber, 8, 4)

1,234.5670

FloatToStrF(a, ffNumber, 4, 4)

1,235.0000

FloatToStrF(a, ffNumber, 4, 2)

1,235.00

FloatToStrF(a, ffNumber, 2, 4)

1.2E0003

Книга на CD.  Delphi в примерах для начинающих