Mengubah ke floating point dan kembali sepertinya sangat membuang waktu di level CPU.
Solusi Ian Nelson:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Dapat disederhanakan untuk:
int pageCount = (records - 1) / recordsPerPage + 1;
AFAICS, ini tidak memiliki bug overflow yang ditunjukkan Brandon DuRette, dan karena itu hanya menggunakannya sekali, Anda tidak perlu menyimpan recordsPerPage khusus jika itu berasal dari fungsi yang mahal untuk mengambil nilai dari file konfigurasi atau sesuatu.
Yaitu ini mungkin tidak efisien, jika config.fetch_value menggunakan pencarian basis data atau sesuatu:
int pageCount = (records + config.fetch_value('records per page') - 1) / config.fetch_value('records per page');
Ini menciptakan variabel yang tidak benar-benar Anda butuhkan, yang mungkin memiliki implikasi memori (kecil) dan terlalu banyak mengetik:
int recordsPerPage = config.fetch_value('records per page')
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Ini semua satu baris, dan hanya mengambil data satu kali:
int pageCount = (records - 1) / config.fetch_value('records per page') + 1;