La conversione in virgola mobile e ritorno sembra una grande perdita di tempo a livello di CPU.
La soluzione di Ian Nelson:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Può essere semplificato per:
int pageCount = (records - 1) / recordsPerPage + 1;
AFAICS, questo non ha il bug di overflow che Brandon DuRette ha sottolineato e poiché lo utilizza solo una volta, non è necessario archiviare recordsPerPage specialmente se proviene da una funzione costosa per recuperare il valore da un file di configurazione o qualcosa.
Vale a dire questo potrebbe essere inefficiente, se config.fetch_value utilizzava una ricerca nel database o qualcosa del genere:
int pageCount = (records + config.fetch_value('records per page') - 1) / config.fetch_value('records per page');
Questo crea una variabile di cui non hai davvero bisogno, che probabilmente ha implicazioni di memoria (minori) ed è semplicemente troppa battitura:
int recordsPerPage = config.fetch_value('records per page')
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Questa è tutta una riga e recupera i dati una sola volta:
int pageCount = (records - 1) / config.fetch_value('records per page') + 1;