Converter em ponto flutuante e vice-versa parece uma enorme perda de tempo no nível da CPU.
A solução de Ian Nelson:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Pode ser simplificado para:
int pageCount = (records - 1) / recordsPerPage + 1;
AFAICS, isso não tem o bug de estouro que Brandon DuRette apontou e, como o usa apenas uma vez, você não precisa armazenar o recordsPerPage especialmente se for de uma função cara para buscar o valor de um arquivo de configuração ou alguma coisa.
Ou seja, isso pode ser ineficiente, se config.fetch_value usou uma pesquisa no banco de dados ou algo assim:
int pageCount = (records + config.fetch_value('records per page') - 1) / config.fetch_value('records per page');
Isso cria uma variável que você realmente não precisa, que provavelmente tem implicações (menores) de memória e é muita digitação:
int recordsPerPage = config.fetch_value('records per page')
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Isso é tudo em uma linha e somente busca os dados uma vez:
int pageCount = (records - 1) / config.fetch_value('records per page') + 1;