सीपीयू स्तर पर समय की भारी बर्बादी की तरह फ्लोटिंग पॉइंट और बैक में परिवर्तित होना।
इयान नेल्सन का समाधान:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
सरल किया जा सकता है:
int pageCount = (records - 1) / recordsPerPage + 1;
AFAICS, इसमें ओवरफ्लो बग नहीं है जिसे ब्रैंडन ड्यूरेट ने इंगित किया है, और क्योंकि यह केवल एक बार उपयोग करता है, आपको विशेष रूप से रिकॉर्डरेज को स्टोर करने की आवश्यकता नहीं है यदि यह एक महंगी फ़ंक्शन से आता है, तो एक कॉन्फ़िगरेशन फ़ाइल से मान प्राप्त करें या कुछ कुछ।
यानी यह अक्षम हो सकता है, अगर config.fetch_value डेटाबेस लुकअप या कुछ का उपयोग करता है:
int pageCount = (records + config.fetch_value('records per page') - 1) / config.fetch_value('records per page');
यह एक ऐसा चर बनाता है जिसकी आपको वास्तव में आवश्यकता नहीं है, जिसमें संभवतः (मामूली) मेमोरी निहितार्थ है और बस बहुत अधिक टाइपिंग है:
int recordsPerPage = config.fetch_value('records per page')
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
यह सभी एक पंक्ति है, और केवल एक बार डेटा प्राप्त करता है:
int pageCount = (records - 1) / config.fetch_value('records per page') + 1;