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

सी/सी++ में फ्लोट और डबल तुलना के लिए सबसे प्रभावी तरीका क्या है?

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

दो फ्लोटिंग पॉइंट या डबल वैल्यू की तुलना करने के लिए, हमें तुलना में सटीकता पर विचार करना होगा। उदाहरण के लिए, यदि दो संख्याएँ 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; //they are same
      return false; //they are not same
}
bool compare_float(double x, double y, double epsilon = 0.0000001f){
   if(fabs(x - y) < epsilon)
      return true; //they are same
      return false; //they are not same
}
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 है। Altitude(h)=$$\sqrt{a^{2}-\frac{b^{2}}{2}}$$ Area(A)=$\frac{1}

  1. C++ में घनाभ के आयतन और सतह क्षेत्र के लिए कार्यक्रम

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

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

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