logo
Методичка_Delphi_Ч1

Форматирование результатов расчетов

Точность представления чисел вещественного типа очень высока. Из таблицы 2.1 следует, что результат вычислений может иметь более десятка значащих цифр. Предположим, что в результате обработки результатов эксперимента на лабораторной работе по физике, мы получили значение некоторой величины равное 9.85432132, хотя исходные данные для расчета имели точность значительно меньшую. Такой результат лучше отформатировать перед выводом, округлив до требуемого количества цифр после точки. Это можно сделать с помощью функции format().

Функция format() не только округляет результаты, но и предоставляет программисту много других возможностей по представлению результатов вычислений. В общем виде обращение к функции выглядит так:

format(<строка форматов>,<список объектов форматирования>)

Cтрока форматов состоит из фрагментов текста и спецификаторов. Спецификаторы указывают, что в данном месте строки должен быть вставлен объект из списка объектов форматирования. Признаком спецификатора формата является символ процента (%). После этого символа располагаются число и буква, указывающие, как форматировать данный объект.

Список объектов форматирования может состоять из констант, переменных или выражений, разделенных запятыми. Весь список заключается в квадратные скобки.

Подробное описание функции можно найти в справочной системе Delphi. Здесь мы рассмотрим только несколько примеров.

Пусть значение переменной х обращение к функции формат

Таблица 2.5 – Примеры использования функции format()

Обращение к функции

Значения объектов форматирования

Возвращаемое значение

format(‘Результат = %1.3f’, [x])

X=23.45678

Результат =23.457

format(‘%1d+%1d=%1d’,[a, b, a+b]

a=12. b=13

12+13=25

format(‘%1s= %1.3f’, [r, x])

r=’Результат’. x=23.4

Результат =23.400

В первом примере спецификатор имеет значение %1.3f и относится он к переменной х. Символ f указывает на то, что форматироваться будет вещественное число, но в форме с фиксированной точкой. Число 3 после точки указывает на то, что для дробной части числа выделяется три позиции. Поэтому результат был округлен до трех знаков после точки. Число 1 перед точкой указывает на то, что общее число позиций для вывода объекта равно 1. Это явно мало, поэтому функция выделяет столько позиций, сколько требуется. В данном случае требуется 6 позиций (две на целую часть, одна на точку, и три на дробную часть). Если бы перед точкой стояло число большее 6, например 9, то слева было бы добавлено три пробела.

Во втором примере форматируются целые числа, поэтому для определения типа используется символ d. Числом задается требуемое количество позиций.

В третьем примере одним из объектов форматирования является строка символов, поэтому в качестве символа для определения типа используется буква s.