Die Konvertierung in Gleitkomma und zurück scheint auf CPU-Ebene eine enorme Zeitverschwendung zu sein.
Ian Nelsons Lösung:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Kann vereinfacht werden zu:
int pageCount = (records - 1) / recordsPerPage + 1;
AFAICS, dies hat nicht den Überlauffehler, auf den Brandon DuRette hingewiesen hat, und da er nur einmal verwendet wird, müssen Sie die recordsPerPage nicht speziell speichern, wenn sie von einer teuren Funktion stammt, um den Wert aus einer Konfigurationsdatei oder abzurufen etwas.
Das heißt, dies könnte ineffizient sein, wenn config.fetch_value eine Datenbanksuche verwendet hat oder so:
int pageCount = (records + config.fetch_value('records per page') - 1) / config.fetch_value('records per page');
Dadurch wird eine Variable erstellt, die Sie nicht wirklich benötigen. Dies hat wahrscheinlich (geringfügige) Auswirkungen auf den Speicher und ist einfach zu viel Eingabe:
int recordsPerPage = config.fetch_value('records per page')
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
Dies ist alles eine Zeile und ruft die Daten nur einmal ab:
int pageCount = (records - 1) / config.fetch_value('records per page') + 1;