float और double वेरिएबल्स की तुलना इस बात पर निर्भर करती है कि आपका अंतिम लक्ष्य क्या है। यदि आप बहुत अधिक विवरण में जाए बिना एक रन करने योग्य फ़ंक्शन चाहते हैं और कुछ गलत गणनाओं में कोई समस्या नहीं होगी, तो आप निम्न फ़ंक्शन का उपयोग कर सकते हैं:
उदाहरण
#include<iostream> using namespace std; // सहन की जा सकने वाली एरर को परिभाषित करें #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/