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

Lazarus IDE: Основы программирования в Windows Lazarus IDE: Основы программирования в Windows

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

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

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

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

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