Функції перетворення з речового в цілий тип
Коду ціле значення присвоюється дійсної змінної, воно автоматично перетвориться в дійсний тип і ніякі функції для цього не потрібні. Таке перетворення типів називається неявним. Так, якщо змінну оголосити як real. а потім привласнити їй ціле число 5, то останнім автоматично перетворюється в 5.0.
Зворотного неявного перетворення немає: буде помилкою намагатися привласнювати змінної цілого типу речовинний результат.
Перед привласненням цілої змінної речового значення це значення слід перетворити до цілого типу відкиданням дробової частини або округленням. Для цих цілей служать функції trunc і round відповідно.
trunc (вещественное_вираженіе) - перетворює речовий в цілий тип, відкидаючи дробову частину.
trunc (3.1), trunc (3.8). Результат: 3, 3
trunc (-3.1), trunc (-3.8). Результат: -3, -3
round (вещественное_вираженіе) - перетворює речовий в цілий тип, округляючи до найближчого цілого.
round (3.1), round (3.8). Результат: 3, 4
round (-3.1), round (-3.8). Результат: -3, -4
Тут можливі непорозуміння. Нехай матеріальна змінна x має значення 3.499999. Якщо це значення надрукувати з використанням оператора write (x: 8: 5), то вийде 3.50000, в той час як write (round (x)) дасть 3, а не 4. Це утруднення можна обійти за допомогою невеликої поправки, наприклад write ( round (x + 0.000001)) (в припущенні, що значення змінної x свідомо позитивне).
Застосовувати функції trunc і round до параметрів цілого типу не можна. Наприклад, будуть помилкою такі вирази, як trunc (3) або round (3).