ফ্লোট এবং ডবল ভেরিয়েবলের তুলনা করা আপনার শেষ লক্ষ্য কী তার উপর নির্ভর করে৷ আপনি যদি খুব বেশি বিশদ বিবরণ না দিয়ে একটি চালানোর যোগ্য ফাংশন চান এবং কিছু ভুল গণনাতে সমস্যা না হয় তবে আপনি নিম্নলিখিত ফাংশনটি ব্যবহার করতে পারেন -
উদাহরণ
#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/