Перетворення на плаваючу крапку і назад здається величезною тратою часу на рівні процесора.
Рішення Яна Нельсона:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Можна спростити:
int pageCount = (records - 1) / recordsPerPage + 1;
AFAICS, у цьому відсутності помилки переповнення, на яку вказував Брендон Дюретт, і тому що він використовує його лише один раз, вам не потрібно зберігати recordsPerPage спеціально, якщо він походить від дорогої функції для отримання значення з конфігураційного файлу або щось.
Тобто це може бути неефективним, якщо config.fetch_value використовував пошук бази даних чи щось таке:
int pageCount = (records + config.fetch_value('records per page') - 1) / config.fetch_value('records per page');
Це створює змінну, яка вам насправді не потрібна, яка, ймовірно, має (незначні) наслідки для пам’яті і просто занадто багато вводить:
int recordsPerPage = config.fetch_value('records per page')
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Це все в одному рядку і отримує дані лише один раз:
int pageCount = (records - 1) / config.fetch_value('records per page') + 1;