Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C/C++ में float और double तुलना का सबसे प्रभावी तरीका क्या है?


यहां हम देखेंगे कि C या C++ का उपयोग करके दो फ्लोटिंग पॉइंट डेटा या दो डबल डेटा की तुलना कैसे की जाए। फ्लोटिंग पॉइंट / डबल तुलना पूर्णांक तुलना के समान नहीं है।

दो फ्लोटिंग पॉइंट या डबल मानों की तुलना करने के लिए, हमें तुलना में सटीकता (precision) को ध्यान में रखना होगा। उदाहरण के लिए, यदि दो संख्याएं 3.1428 और 3.1415 हैं, तो वे 0.01 की सटीकता तक समान हैं, लेकिन उसके बाद, जैसे 0.001 पर वे समान नहीं हैं।

इस मानदंड का उपयोग करके तुलना करने के लिए, हम एक फ्लोटिंग पॉइंट संख्या को दूसरे से घटाकर निरपेक्ष मान ज्ञात करेंगे, फिर जांचेंगे कि क्या परिणाम सटीकता मान से कम है या नहीं। इससे हम तय कर सकते हैं कि वे समतुल्य हैं या नहीं।

उदाहरण

#include <iostream> 
#include <cmath> 
using namespace std; 

bool compare_float(float x, float y, float epsilon = 0.01f){ 
    if(fabs(x - y) < epsilon) 
        return true; //वे समान हैं 
    return false; //वे समान नहीं हैं 
} 

bool compare_float(double x, double y, double epsilon = 0.0000001f){ 
    if(fabs(x - y) < epsilon) 
        return true; //वे समान हैं 
    return false; //वे समान नहीं हैं 
} 

int main() { 
    float x, y; 
    x = 22.0f/7.0f; 
    y = 3.1415f; 
    if(compare_float(x, y)){ 
        cout << "They are equivalent" << endl; 
    } else { 
        cout << "They are not equivalent" << endl; 
    } 
    if(compare_float(x, y, 0.001f)){ 
        cout << "They are equivalent" << endl; 
    } else { 
        cout << "They are not equivalent" << endl; 
    } 
    double a, b; 
    a = 2.03547415; 
    b = 2.03547428; 
    if(compare_float(a, b)){ 
        cout << "They are equivalent" << endl; 
    } else { 
        cout << "They are not equivalent" << endl; 
    } 
    if(compare_float(a, b, 0.000001f)){ 
        cout << "They are equivalent" << endl; 
    } else { 
        cout << "They are not equivalent" << endl; 
    } 
}

आउटपुट

They are equivalent 
They are not equivalent 
They are not equivalent 
They are equivalent

  1. - C++ में समद्विबाहु त्रिभुज की ऊंचाई और क्षेत्रफल ढूंढें

    मान लीजिए हमारे पास समद्विबाहु त्रिभुज की भुजा है, हमारा कार्य इसका क्षेत्रफल और ऊंचाई ढूंढना है। इस प्रकार के त्रिभुज में, दो भुजाएं समान होती हैं। मान लीजिए त्रिभुज की भुजाएं 2, 2 और 3 हैं, तो ऊंचाई 1.32 है और क्षेत्रफल 1.98 है। ऊंचाई(h) = √(a² - b²/4) क्षेत्रफल(A) = ½ × b × h उदाहरण #include

  1. C++ में घनाभ का आयतन और पृष्ठीय क्षेत्रफल C++ में घनाभ का आयतन और पृष्ठीय क्षेत्रफल

    घनाभ क्या है?घनाभ एक त्रि-आयामी वस्तु है जिसके छह फलक आयताकार आकार के होते हैं जिसका मतलब है कि इसकी लंबाई और चौड़ाई अलग-अलग होती है। घन और घनाभ में अंतर यह है कि घन की लंबाई, ऊंचाई और चौड़ाई समान होती है जबकि घनाभ में ये तीनों समान नहीं होती।घनाभ के गुण हैं -छह फलक12 किनारे8 शीर्षनीचे घन का चित्र द

  1. साइफरपंक्स कौन हैं और वे किसकी वकालत कर रहे हैं? साइफरपंक्स कौन हैं और वे किसकी वकालत कर रहे हैं?

    क्रिप्टोकरेंसी के समाचार चक्र पर हावी होने के साथ, साइफरपंक समुदाय एक बार फिर सुर्खियों में आ गया है। ब्लॉकचेन तकनीक के बढ़ते उपयोग का अर्थ यह भी है कि दुनिया भर में साइफरपंक के रूप में पहचान बनाने वाले व्यक्तियों की संख्या तेजी से बढ़ रही है, जो सरकार और कानून प्रवर्तन संस्थानों के लिए चिंता का विष