Здравствуйте, Kulikov_Oleg_Viktorovich!
1. Забудьте про вещественный тип REAL. Его придумали в то время, когда математические сопроцессоры были ужасно дороги. Теперь же они сидят в каждом компе.
Используйте либо тип SINGLE, если ожидаемое значение не выходит за диапазон 1.5 x 10^–45 .. 3.4 x 10^38, в противном же случае пользуйтесь типом DOUBLE, у него значения лежат в диапазоне 5.0 x 10^–324 .. 1.7 x 10^308 , т.е. степень 57 туда как раз входит. У REAL диапазон ограничен 2.9 x 10^–39 .. 1.7 x 10^38.
2. При расчетах Вы, к сожалению, не сможете ограничится каким либо знаком после запятой, однако Вы это можете сделать при выводе результата:
WriteLn(Число:N:M);
Здесь:
N - это общее количество выводимых знаков,
M - число знаков после запятой.
Таким образом если задать:
a:=1,375E-3;
WriteLn(a:10:5);
то в результате выведется число 0,00137. Впереди дополнится пробелами до 10 знаков. Очень удобно при выводе на экран табличек.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)