logo
Лекции по TURBO PASCAL

Вывод на экран вещественных чисел

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

program Real_Writing_Demo;

var d : real;

begin

d := 575.22;

writeln (d);

end.

И вот тут начнутся неожиданности. Вместо ожидаемого «575.22» на экране появится «абракадабра»:

5.75219999999739E+0002

Однако, если внимательней присмотреться, то можно заметить, что это и в самом деле наше число, но «округленное» и записанное в стандартном виде. «Округление» происходит из-за особенности представления числа в памяти, более подробно об этом будет рассказано в следующем пункте.

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

writeln (d : <всего символов> : <дробная часть>);

Параметр <всего символов> показывает, сколько надо выделить символов (знакомест, позиций) экрана для вывода числа, а параметр <дробная часть> – сколько знаков после десятичной точки необходимо отобразить. Этот способ вывода называет форматированным выводом.

Если в предыдущем примере оператор вывода сделать форматированным:

writeln (d : 6 : 2);

то компьютер напечатает долгожданное

575.22

Можно ещё поэкспериментировать с этими параметрами вывода на экран вещественного числа. Только надо знать, что если вы зададите слишком маленькое значение параметра <всего символов> и число не влезет в ваше прокрустово ложе, то оно займёт больше места на экране. Если же вы выделите для числа места больше, чем ему необходимо, то слева к этому числу будет добавлены пробелы: столько, сколько не хватает длине числа до выделенного вами места. Параметр <дробная часть> можно менять как угодно, компьютер в каждом случае будет соответствующим образом округлять число. Если этот параметр будет слишком большим, то к дробной части числа компьютер добавит необходимое количество нулей. Можно также задать значение 0 – на экране напечатается только целая часть числа.

Вот несколько примеров, иллюстрирующих всё сказанное (для наглядности символ пробела здесь обозначается квадратиком □):

Таблица 6. Форматированный вывод

Оператор

Результат выполнения

Write(48024.32:10:3);

□48024.320

Write(405.39:10:3);

□□□□□405.4

Write(1024.0:10:7);

1024.0000000

Write(-869.91:5:0);

□-870

Write(0:10:1);

□□□□□□□0.0

Write(67222.4445:10:3);

□67222.445

Примечание. Форматированный вывод можно употреблять и для целых чисел. Но для них задаётся только один параметр – <всего символов>.