820 Глава 14

Функция FloatToDecimal преобразует число с плавающей запятой типа Ex-
tended или Currency в десятичное представление, которое может в дальнейшем
подвергаться дополнительному форматированию. Для значения типа Extended па-
раметр Precision указывает число значащих цифр от 1 до 18. Для значения типа
Currency параметр Precision игнорируется, а точность предполагается равной 19
разрядам.

Параметр Decimals указывает максимально требуемое число цифр слева от де-
сятичной точки. Таким образом, параметры Precision и Decimals совместно опре-
деляют способ округления результата. Чтобы результат всегда имел заданное ко-
личество значащих цифр независимо от значения числа, можно указать Decimals
равным 9999.

Результат преобразования заносится в структуру типа TFIoatRec, имеющую
поля:

Exponent Хранит количество значащих цифр до десятичной точки. Если чис-
ло меньше 1, то поле Exponent содержит отрицательное число, мо-
дуль которого равен номеру первого значащего разряда после деся-
тичной точки. Если значение равно NAN (не число), Exponent рав-
няется -32768. Если значение INF или -INF (плюс или минус беско-
нечность), то Exponent •= 32767

Negative При отрицательном числе — true, при положительном или нуле —
false

Digits    Строка с нулевым символом в конце, содержащая до 18 (для Exten-
ded) или 19 (для Currency) значащих цифр. Десятичная точка не
хранится. Завершающие нули удаляются. Если число рано нулю,
NAN или INF, Digits содержит только нулевой символ

Ниже приведен пример использования функции FloatToDecimal:

struct TFIoatRec Result;

Extended Value = ... ;

FloatToDecimal(Result, &Value,fvExtended,18,9999) ;

При различных значениях Value получаются результаты:

Value	Exponent	Negative	Digits
123.4567890123456789	3	false	123456789012345681
1234567890123456789	19	false	123456789012345679
-0.001234567890123456789	-2	true	123456789012345671