La conversión a coma flotante y viceversa parece una gran pérdida de tiempo a nivel de CPU.
La solución de Ian Nelson:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Se puede simplificar para:
int pageCount = (records - 1) / recordsPerPage + 1;
AFAICS, esto no tiene el error de desbordamiento que Brandon DuRette señaló, y debido a que solo lo usa una vez, no necesita almacenar los registrosPerPage especialmente si proviene de una función costosa para obtener el valor de un archivo de configuración o alguna cosa.
Es decir, esto podría ser ineficiente, si config.fetch_value utiliza una búsqueda en la base de datos o algo así:
int pageCount = (records + config.fetch_value('records per page') - 1) / config.fetch_value('records per page');
Esto crea una variable que realmente no necesita, que probablemente tenga implicaciones (menores) de memoria y simplemente escriba demasiado:
int recordsPerPage = config.fetch_value('records per page')
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Esta es toda una línea y solo obtiene los datos una vez:
int pageCount = (records - 1) / config.fetch_value('records per page') + 1;