Вещественные числа представляются в компьютере в виде мантиссы и порядка. В программе вы можете использовать форму с фиксированной точкой (например, 2.56, -45.345) или с плавающей точкой (например, 3.23Е23 – это соответствует числу 3.23*1023). Форма с плавающей точкой обычно используется для записи очень больших или очень маленьких чисел. Эти же формы используются при вводе чисел с клавиатуры или из текстовых файлов.
Хотя язык предоставляет несколько вещественных типов, в подавляющем числе задач достаточно использовать тип Real, который обеспечивает 11-12 значащих цифр и порядок от –39 до +38.
В программах использующих вещественные числа есть свои особенности. При проведении с операций с такими числами необходимо учитывать погрешность вычислений, вызванную накоплением ошибок в последних разрядах. Это приводит к тому, что вещественные числа, как правило, нельзя сравнивать обычным образом - их нужно сравнивать с какой-то заданной точностью eps. Например, для выяснения, равно ли вещественное число нулю вместо условия a=0 следует записать abs(a)<eps.
Для сравнения двух вещественных чисел в программе следует писать:
при a=b abs(a-b)<=eps
при a<>b abs(a-b)>eps
Обычно в условиях задач говорится, с какой точность должен быть выдан результат. Чтобы не потерять точность при сложных вычислениях следует взять точность с запасом на один два порядка. Следует помнить, что это может сильно увеличить время работы программ, что на соревнованиях может сыграть отрицательную роль.
При выдаче вещественных результатов с заданным числом знаков в дробной части используйте следующий формат:
Write(X:0:число знаков в дробной части);
При этом проводится округление до заданного числа знаков.
Например, после выполнения программы
Var X: Real;
Begin
X:=23.347;
Write(X:0:2);
Readln
End.
на экране появится число 23.35.