Вещественные типы (Действительные типы) в Delphi XE

Значение переменных вещественного типа всегда приблизительные, по­этому их нельзя проверять на равенство!

 

Тип

 

Диапазон значений

 

Точность

 

Объём памяти

 

Real48

 

 

-2.9x10-39 ..1.7x1038

 

 

11-12 цифр

 

6 байт

 

Single

 

 

-1.5x10-45 ..3.4x1038

 

 

7-8 цифр

 

4 байта

 

Double = Real

 

 

-5.0x10-324 ..1.7x103U8

 

 

15-16 цифр

 

8 байтов

Extended

-3.6x10-4951 "1.1x104y32

19-20 цифр

10 байтов

 

Comp

 

 

-2x1063+1 ..2x1063-1

 

 

19-20 цифр

 

8 байтов

Currency

 

-922337203685477.5808 ..

 

19-20 цифр

8 байтов

 

 

922337203685477.5807

 

 

 

Тип Real48 оставлен только для совместимости с предыдущими версиями Delphi, поэтому его не следует использовать.

Типы Compи Currencyиспользуются только в денежных операциях.

 

Обычно для расчётов хватает точности типа Single, но вычисления произ­водятся быстрее с типом Real(он же Double).

Для записи вещественных чисел используют 2 способа. Первый - как в школе, но вместо десятичной запятой ставится точка:


1.5
-3.14

Для очень больших и очень маленьких чисел больше подходит второй способ. Сначала записывается однозначное число с десятичной точкой, за­тем буква E(или е) и целое число, которое равно степени десятки. Напри­мер,


1.05e2 это 1.05 x102или 1.05 x100 = 105
-3.14e-5 это -3.14 x10-5 или -3.14 x0,00001 = -0.0000314

Объявление переменных вещественного типа:


Vara,b: Single;
C: Real;

Вещественные числа часто используются для «технических» расчётов, а при необходимости их можно округлить до целых чисел (тип результата - int64) с помощью функций truncи round.

Целым переменным нельзя присваивать действительные значения!

Функция truncпросто отсекает дробную часть числа:


trunc(2.1728)  = 2
trunc(-2.1728)) = -2

Функция roundокругляет действительное число до ближайшего целого:


round(2.1728)  = 2
round(2.7) = 3 round(2) = 2 round(-2.1728)) = -2

Чтобы было легче понять, как действует функция round, выразим её через trunc:

round(x) = trunc(x + 0.5), если x>=0 round(x) = trunc(x - 0.5), если x < 0

������� ������ ��� dle ������� ��������� ������

Помоги проекту! Расскажи друзьям об этом сайте: