Вещественные типы данных

Что делать, чтобы стать программистом Что делать, чтобы стать программистом

Многие сегодня хотят стать программистами. Хотят. Но ничего не делают для этого. Не делают даже простых вещей. Не хотят даже прочитать книжку из 10 страниц. В итоге так и остаются никем. Потому что мечты не сбываются никогда. Сбываются только планы… Подробнее...

Не всегда при каких-либо вычислениях удаётся обойтись только целыми числами. Например, если вы пишите бухгалтерскую программу, то вам придётся считать не только рубли, но и копейки. То есть сумма будет иметь вид ррр,кк, где ррр - это рубли, а кк - копейки, то есть дробная часть числа.

В русском языке целую и дробную часть числа принято разделять запятой. Однако в большинстве стран этим разделителем является точка. Поэтому и в большинстве языков программирования целая и дробная части также разделяются точкой:

3.14
1.5
1000.55

Есть и другие способы записи вещественных чисел. Но они сложны для начинающих, поэтому пока рассматривать их не будем.

Вещественные типы данных Free Pascal перечислены в таблице 13.3.

Таблица 13.3. Вещественные типы данных Free Pascal (Lazarus).

Тип Размер, байт Значащие цифры Диапазон значений
Real 4 или 8 ??? Определяется операционной системой
Single 4 7-8 -1.5 * 1045 … 3.4 * 1038
Double 8 15-16 -5.0 * 10324 … 1.7 * 10308
Extended 10 19-20 -1.9 * 104932 … 1.1 * 104932
Comp 8 19-20 (-2 * 1064 + 1)… (2 * 1063 - 1)
Currency 8 19-20 -922337203685477.5808… 922337203685477.5807

Вообще вещественные числа в программировании - это сложная тема. Особенно если докопаться до низкого уровня, то есть до того, как вещественные числа представлены в памяти компьютера. Начинающим знать это пока рано. Поэтому сейчас просто считайте, что вещественные числа - это дробные числа.

Старайтесь не использовать в своих программах вещественные типы данных, если в этом нет необходимости. Потому что здесь довольно много подводных камней, на которые может напороться начинающий программист.

Если мы попробуем вывести диапазон значений вещественного типа, как мы это делали с порядковыми типами, например, так

Writeln('Real : ', Low(Real), '..', High(real));

то ничего у нас не получится - компилятор выдаст ошибку. Это опять же связано со сложностью работы с вещественными числами. Вдаваться в подробности не буду. Пока нам это не надо.

Листинг 13.6. Вещественные типы данных.
program ve;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this };

var  xr : real;
    xs : single;
    xd : double;
    xe : extended;
    xc : comp;
    xm : currency;

begin
  Writeln('Real     : ', xr);
  Writeln('Single   : ', xs);
  Writeln('Double   : ', xd);
  Writeln('Extended : ', xe);
  Writeln('Comp     : ', xc);
  Writeln('Currency : ', xm);

  Readln;
end.
Домашнее задание:

Создайте программу, которая приведена в листинге 13.6. Откомпилируйте программу и запустите её. Попробуйте догадаться, почему программа выводит строки с разным содержимым.


Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика