एक्सेल राउंडिंग एरर


3

एक नई वर्कशीट में (मैं एक्सेल २०१३ का उपयोग कर रहा हूं), शीर्ष बाएं में शुरू, मैं टाइप करता हूं:

=18.6 + 67.2| =A1-85.8 = 0|=(A1-85.8) * 1000000000000

उम्मीद

85.8| TRUE|0

वास्तविक परिणाम

85.8| FALSE|0.014210855

मैं अच्छी तरह से जानता हूं कि फ्लोटिंग पॉइंट नंबर इस तरह का व्यवहार कर सकते हैं, लेकिन मैं अभी भी इस पर आश्चर्यचकित हूं कि संख्याओं पर इस तरह के सरल संचालन के साथ कम संख्या में महत्वपूर्ण आंकड़े और परिमाण के समान आदेश हैं।

क्या कोई यह समझा सकता है कि ऐसा क्यों होता है और यह केवल कुछ जोड़े मूल्यों (और हमेशा गैर-पूर्णांक) के साथ ही क्यों होता है?


इस तरह से भरी गई कई पंक्तियाँ (और बार-बार इस्तेमाल होती हैं F9):

=RANDBETWEEN(10, 1000)/10| =RANDBETWEEN(10, 1000)/10| =A1 + B1| =C1-ROUND(C1,1)=0|=(C1-ROUND(C1,1)) * 1000000000000

इस घटना की स्पष्ट यादृच्छिक प्रकृति को प्रदर्शित करने में मदद करता है।

जवाबों:


4

हम इस अजीब कार्रवाई में प्रभावित करते हैं (एक्सेल क्या सोच रहा है यह होना चाहिए) देख सकते हैं से अपने बी स्तंभ अपडेट करके =A1-85.8 = 0करने के लिए=A1-85.8

इसलिए, इसे सही करने के लिए ROUND का उपयोग करें

ईजी

=ROUND(A1-85.8, 0) = 0

इस स्रोत को देखने के बारे में समझाने के लिए कृपया इसे स्पष्ट करें। (कॉपी करने के लिए बहुत ज्यादा)

इसके अलावा, ऊपर दिए गए लिंक से भी

कुछ मामलों में, आप प्रदर्शन के रूप में परिशुद्धता का उपयोग करके अपने काम को प्रभावित करने से दौर त्रुटियों को रोकने में सक्षम हो सकते हैं। यह विकल्प कार्यपत्रक में प्रत्येक संख्या के मूल्य को प्रदर्शित मूल्य के लिए बाध्य करता है। इस विकल्प को चालू करने के लिए, इन चरणों का पालन करें:

Excel 2003 और पिछले संस्करणों में, उपकरण मेनू पर विकल्प पर क्लिक करें। परिकलन टैब पर, प्रदर्शित चेक बॉक्स के रूप में परिशुद्धता का चयन करने के लिए क्लिक करें।

Excel 2007 में, Microsoft Office बटन पर क्लिक करें, Excel विकल्प पर क्लिक करें और फिर उन्नत श्रेणी पर क्लिक करें। इस कार्यपुस्तिका अनुभाग की गणना करते समय, अपनी इच्छित कार्यपुस्तिका का चयन करें, और फिर प्रदर्शित चेक बॉक्स के रूप में सेट सटीकता का चयन करें।

Excel 2013 और 2010 में, फ़ाइल और फिर विकल्प पर क्लिक करें और फिर उन्नत श्रेणी पर क्लिक करें। इस कार्यपुस्तिका अनुभाग की गणना करते समय, अपनी इच्छित कार्यपुस्तिका का चयन करें, और फिर प्रदर्शित चेक बॉक्स के रूप में सेट सटीकता का चयन करें।


लिंक के लिए धन्यवाद। वास्तव में आपके द्वारा उद्धृत बिट के बजाय (जो निश्चित रूप से उन लोगों के लिए उपयोगी हो सकता है जो इसके बारे में नहीं जानते हैं), मुझे लगता है कि पृष्ठ का पहला भाग प्रश्न के लिए अधिक प्रासंगिक है। इसने मुझे याद दिलाया कि आवर्ती आंशिक भागों के साथ मान द्विआधारी और दशमलव के बीच भिन्न होते हैं। मुझे यकीन है कि यह पूरी तरह से यहाँ एक्सेल के व्यवहार की व्याख्या करता है।
बॉब सैमर्स

@ याकूबर्स, कृपया मेरे उत्तर पर संपादन देखें, मुझे लगता है कि मैंने वास्तव में मूल रूप से किया हो सकता है और फिर अपना मन बदल दिया है !!
डेव

वास्तव में आपने किया! यदि आप इसे वापस बदलते हैं (संभवतः IEE 754 बिट के बिना - मुझे पता है कि यह यांत्रिकी के लिए प्रासंगिक है, लेकिन प्रश्न के कुछ हद तक प्रासंगिक है), मुझे उम्मीद है कि मैं इसे "स्वीकार्य" उत्तर के रूप में देख पाऊंगा (मेरा मतलब है कि मैं आधिकारिक तौर पर स्वीकार कर सकते हैं - यह बोलचाल की समझ में पूरी तरह से स्वीकार्य है)।
बॉब सैमर्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.