Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Сис. программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

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

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


Процедура FloatToDecimal( var DecVal: TFloatRec; const Value; ValueType: TFloatValue; Precision, Decimals: Integer );

Модуль: SysUtils

type TFloatValue = (fvExtended, fvCurrency);

type TFloatRec = record
     Exponent: Smallint;
     Negative: Boolean;
     Digits: array[0..20] of Char;
     end;

Описание
Процедура преобразовывает число с плавающей запятой Value в представление, удобное для дальнейшего форматирования.
Value - переменная типа Extended или Currency в зависимости от значения параметра ValueType. Результат преобразования возвращается в переменной Result и имеет тип TFloatRec.
Параметр Precision для значений типа Extended определяет количество (1..18) значащих цифр в результирующем значении.
Если для исходного значения определен тип Currency, то оно преобразовывается с точностью 19 знаков. а параметр Precision в данном случае игнорируется. Параметр Decimals определяет максимальное число разрядов после запятой. От значений Precision и Decimals зависит то, каким образом будет округляться результат.
Результат преобразования возвращается в переменной типа TFloatRec:

ПолеЗначение
ExponentДанное значение определяет позицию десятичного разделителя. Если абсолютное значение числа ¦Value¦ >= 1, то значение Exponent>0, и наоборот, если ¦Value¦ < 1, то Exponent<0. Если в параметре Value указано значение NAN (not-a-number), т.е. значение не является числом, то значение Exponent устанавливается равным -32768. Если Value представляет собой положительную (INF) или отрицательную (-INF) бесконечность, то значение Exponent устанавливается равным 32767.
NegativeОпределяет знак числа. Если Value<0, то в данное поле записывается True, а если Value>=0, то False
DigitsВ данное поле записывается строковое (в формате PChar) представление числа без символа десятичного разделителя (положение разделителя определяется значением поля Exponent). Значение может содержать до 18-ти (для типа Extended) или 19-ть (для типа Currency) десятичных символов, завершаемых нулевым символом конца строки. Нули, стоящие в конце числа, не записываются. Если исходное значение представляет собой NAN (не число), INF, -INF (бесконечность) или равно 0, то поле Digits содержит только символ конца строки.
Пример
var
   Res: TFloatRec;
   X: Extended;
begin
   X:= -987.654321;
   FloatToDecimal( Res, X, fvExtended, 9, 1);
     { Res.Exponent:= 3; Res.Negative:= True; Res.Digits:= 9877 }
end;

[ Оглавление ]









helloworld.ru © 2001-2021
Все права защищены