функція round

функція round

Як стати програмістом 2.0

Ця книга для тих, хто хоче стати програмістом. Насправді хоче, а не просто мріє. І хоче саме стати програмістом з великої літери, а не просто навчитися кулебякать якісь примітивні програмки ... Детальніше.

Функція Round в Паскалі округлює значення з плаваючою точкою до найближчого цілого числа. синтаксис:

function Round (X: ValReal). Int64;

Функція Round округлює Х до найближчого цілого числа і повертає значення, яке може бути як менше, так і більше початкового значення дійсного числа Х.

Про тип ValReal я розповідав тут.

Правило округлення числа

Округлення дійсного числа Х виконується за наступним правилом:

  1. Якщо дрібна частина числа Х менше 0.5, то число Х округляється в меншу сторону.
  2. Якщо дрібна частина числа Х більше 0.5, то число Х округляється в більшу сторону.
  3. Якщо дрібна частина числа Х дорівнює 0.5, то використовується особливий принцип округлення числа, так зване "Банківська округлення". Тобто коли число округляється завжди в сторону парного числа.

Приклади округлення чисел

Виходячи з вищесказаного функція Round буде повертати наступні результати при округленні чисел:

Ну і наостанок приклад програми:

Тому, якщо необхідно скласти дві змінних - цілу і речову, а результат помістити в цілу, то треба використовувати будь-яку з підпрограм перетворення типів. Наприклад, функцію Round.

Також зверніть увагу, що функція Round повертає число типу Int64. Цей тип НЕ є порядковим типом даних. Це означає, що по ідеї функцію Round не можна використовувати в конструкціях, що вимагають застосування порядкових типів. Наприклад, з оператором case.

Тобто по ідеї компілятор повинен видати помилку, якщо у вашій програмі буде щось типу того: Однак я перевірив. Програма компілюється і працює нормально. І все ж я не раджу використовувати в ваших програмах конструкції, які суперечать документації. Якщо необхідно використовувати результат функції Round в подібних ситуаціях, то краще спочатку привласнити результат якоїсь змінної порядкового типу, а потім вже цю змінну використовувати з таким операторами, як case.

функція round

директиви компілятора
Як це не дивно, але навіть багато досвідчених програмісти не використовують директиви компілятора, вважаючи їх чимось непотрібним і марним. А між тим, директиви компілятора - це дуже класна штука. Якщо їх вміло застосовувати в своїх програмах, то можна істотно скоротити час на розробку і зменшити кількість рутинних операцій. Детальніше.