
Информатика первый курс / Основы С++ / Функция FloatToStrF
.doc
Функция 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 в примерах для начинающих