ফ্লোটিং পয়েন্টে এবং পিছনে রূপান্তর করা সিপিইউ স্তরে সময় নষ্ট করার মতো মনে হয়।
আয়ান নেলসনের সমাধান:
int pageCount = (records + recordsPerPage - 1) / recordsPerPage;
সরলীকৃত করা যেতে পারে:
int pageCount = (records - 1) / recordsPerPage + 1;
আফিক্স, ব্র্যান্ডন ডুরেটের নির্দেশিত ওভারফ্লো বাগটি এটি নেই এবং এটি কেবল একবার ব্যবহার করে, তাই কোনও রেকর্ড ফাইল থেকে মূল্য আনার জন্য যদি কোনও ব্যয়বহুল ফাংশন থেকে আসে তবে আপনার রেকর্ডসপ্রেজ সংরক্ষণ করার দরকার নেই বা কিছু।
অর্থাৎ এটি অকার্যকর হতে পারে, যদি 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;