"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > फ़्लोट राउंडिंग सम परिणामों से आश्चर्यचकित क्यों करती है?

फ़्लोट राउंडिंग सम परिणामों से आश्चर्यचकित क्यों करती है?

2024-11-04 को प्रकाशित
ब्राउज़ करें:465

Why Does Float Rounding Surprise with Even Results?

हाफ फ्लोट राउंडिंग-अप दुविधा

राउंड() फ़ंक्शन के साथ एक विषमता का सामना करना पड़ रहा है? निम्नलिखित व्यवहार पर गौर करें:

for i in range(1, 15, 2):
    n = i / 2
    print(n, "=>", round(n))

आप उम्मीद कर सकते हैं कि फ्लोटिंग मान लगातार राउंड अप होंगे, फिर भी वे आश्चर्यजनक रूप से निकटतम सम संख्या तक राउंड अप करते हैं।

व्यवहार के पीछे का कारण

संख्यात्मक प्रकारों के लिए दस्तावेज़ इस अजीब व्यवहार को कथन के साथ स्पष्ट करता है "राउंड(x[, n]) x को n अंकों में पूर्णांकित किया जाता है, आधे को पूर्णांकित किया जाता है यहां तक ​​की।" इसे बैंकर्स राउंडिंग के रूप में जाना जाता है। लगातार ऊपर या नीचे राउंडिंग करने के बजाय, जो राउंडिंग त्रुटियों को बढ़ाएगा, बैंकर्स राउंडिंग निकटतम सम संख्या को लक्षित करके क्षतिपूर्ति करते हैं। , दशमलव मॉड्यूल का लाभ उठाएं। यह मॉड्यूल आपको विशिष्ट राउंडिंग रणनीतियों को निर्दिष्ट करने के विकल्पों से सुसज्जित करता है। उदाहरण के लिए, आधे से पूर्णांक बनाने के लिए:

>>> दशमलव से स्थानीय संदर्भ, दशमलव, ROUND_HALF_UP आयात करें >>>localcontext() के साथ ctx: ...ctx.राउंडिंग = ROUND_HALF_UP ... के लिए मैं रेंज में (1, 15, 2): ... n = दशमलव(i)/2 ... प्रिंट(n, '=>', n.to_integral_value()) ... 0.5 => 1 1.5 => 2 2.5 => 3 3.5 => 4 4.5 => 5 5.5 => 6 6.5 => 7

विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729151236 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3