ফ্লোট এবং ডবল ভেরিয়েবলের তুলনা করা আপনার শেষ লক্ষ্য কী তার উপর নির্ভর করে৷ আপনি যদি খুব বেশি বিশদ বিবরণ না দিয়ে একটি চালানোর যোগ্য ফাংশন চান এবং কিছু ভুল গণনাতে সমস্যা না হয় তবে আপনি নিম্নলিখিত ফাংশনটি ব্যবহার করতে পারেন -
উদাহরণ
#include<iostream> using namespace std; // Define the error that you can tolerate #define EPSILON 0.000001 bool areSame(double a, double b) { return fabs(a - b) < EPSILON; } int main() { double a = 1.005; double b = 1.006; cout << areSame(a, a); cout << areSame(a, b); }
আউটপুট
এটি আউটপুট দেবে −
1 0
এই ফাংশনটি ত্রুটির জন্য আপনার সহনশীলতা নেয় এবং থ্রেশহোল্ড আপনার তুলনা করা সংখ্যাগুলির মধ্যে পার্থক্যের চেয়ে বেশি কিনা তা পরীক্ষা করে৷ আপনার যদি আরও সঠিক কিছুর প্রয়োজন হয়, তাহলে আপনি এই চমৎকার ব্লগ পোস্টটি পড়া ভালো:https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/