C, C++ और java में, हम फ्लोटिंग पॉइंट नंबरों के साथ कुछ गणितीय कार्य करते हैं। अब यहां हम जांच करेंगे कि फ्लोटिंग पॉइंट नंबर सहयोगीता नियम का पालन कर रहे हैं या नहीं।
जवाब न है। फ़्लोटिंग पॉइंट नंबर कुछ मामलों में सहयोगीता नियमों का पालन नहीं करते हैं। यहां हम कुछ उदाहरण देखेंगे।
उदाहरण कोड
#include<iostream> using namespace std; main() { float x = -500000000; float y = 500000000; float z = 1; cout << "x + (y + z) is: " << x + (y + z) << endl; cout << "(x + y) + z is "<< (x + y) + z << endl; }
आउटपुट
x + (y + z) is: 0 (x + y) + z is 1
यहां, हम देख सकते हैं कि परिणाम समान नहीं हैं, लेकिन सैद्धांतिक रूप से हम कह सकते हैं कि वे हमेशा 1 होंगे। अब सवाल आता है कि यह कैसे किया जाता है?
पहले मामले में x + (y + z), (500000000 + 1) प्रदर्शन कर रहा है। लेकिन फ्लोटिंग पॉइंट ऑफ के लिए, इसे फिर से 500000000 में बदल दिया जाता है। अब इसके साथ -500000000 जोड़ने पर, यह 0 हो जाता है। दूसरी अभिव्यक्ति में, मान (-500000000 + 500000000) =0 है, फिर 1 जोड़ें ताकि अंतिम परिणाम 1 हो।
यदि हम पूर्णांकों का उपयोग करते हैं, तो दोनों व्यंजक एक ही परिणाम देंगे, जो कि 1 है।