Действительные числа.

Описание числовых типов данных (действительные) Паскаля

К вещественному числовому типу данных относится подмножество вещественных чисел, которые могут быть представлены в так называемом формате с плавающей запятой и фиксированным числом цифр. С плавающей точкой каждый числовой тип данных представляется в виде двух групп цифр. Первая группа цифр называется мантиссой, вторая – порядком. В общем виде числовой тип данных в форме с плавающей точкой может быть представлено так: X= {+|-}MP{+ | -} r, где M – мантисса числа; r – порядок числа (r – целое число); P – основание системы счисления. Например, для десятичного основания представление 2Е-1 (здесь Е – основание десятичной системы счисления) будет иметь вид: 2*10-1=0.2, а представление 1.234Е5 будет соответствовать: 1.234*105=123400.0.

В Паскале используются следующие типы вещественных чисел, которые определяют произвольное число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа:

Длина числового типа данных, байт Название числового типа данных Количество значащих цифр числового типа данных Диапазон десятичного порядка числового типа данных
4 Single 7..8 -45..+38
6 Real 11..12 -39..+38
8 Double 15..16 -324..+308
10 Extended 19..20 -4951..+4932
8 Comp 19 . .20 -2*1063 +1..+2*1063 -1

Над действительными числовыми типами данных можно выполнять следующие операции:

  • Арифметические:
    сложение (+);
    вычитание(-);
    умножение(*);
    деление(/);
    возведение в степень;
    унарный плюс (+);
    унарный минус (-).
  • Операции отношения:
    отношение неравенства (<>);
    отношение меньше (<);
    отношение больше (>);
    отношение не меньше (>=);
    отношение не больше (<=).

Для преобразования real в integer имеются две встроенные функции: round(x) округляет вещественное x до ближайшего целого, trunc(x) усекает вещественное число путем отбрасывания дробной части.

Особенности вывода действительных чисел.

var
   a,b:integer;
   c:real;
begin
   readln(a,b);
   c:=a/b;
   write(c);
end.

При входных значениях 5 и 2 на экран будет выведен результат:

2.500000000000000E+000

Добавим небольшое изменение в коде:

var
   a,b:integer;
   c:real;
begin
   readln(a,b);
   c:=a/b;
   write(c:2:2); 
//На экране появится результат с 2 цифрами до и после запятой.
end.

На экране появится ответ:

2.50