क्योंकि 1.1 को बाइनरी रूप में बिल्कुल प्रदर्शित नहीं किया जा सकता है; अनुमान 1.1 से अधिक लिटलर है - इसलिए विभाजन परिणाम थोड़ा छोटा है।
निम्नलिखित का प्रयास करें:
अजगर 2, कंसोल पर प्रकार के तहत:
>>> 1.1
1.1000000000000001
अजगर 3.1 में, सांत्वना 1.1
प्रदर्शित करेगा, लेकिन आंतरिक रूप से, यह अभी भी एक ही नंबर है।
लेकिन:
>>> 11/1.1
10.0
gnibbler बताते हैं, यह तैरता की उपलब्ध परिशुद्धता सीमा के भीतर "आंतरिक राउंडिंग" का नतीजा है। और जैसा कि MYYN अपनी टिप्पणी में इंगित करता है, //
को यथासंभव को संरक्षित करने के लिए math.floor()
से फ़्लोर डिवीजन परिणाम की गणना करने के लिए एक अलग एल्गोरिदम का उपयोग करता है।
यदि आपको इस परिशुद्धता की आवश्यकता है तो Decimal
प्रकार का उपयोग करें।
स्रोत
2010-01-07 10:36:04
http://mail.python.org/pipermail/python-dev/2007-January/070707.html – miku
पायथन 2-बनाम-3 विभाजन अंतर के लिए कैनोलिक सवाल यह है कि मैं विभाजन को फ़्लोटिंग पॉइंट कैसे कर सकता हूं पायथन में? डिवीजन 0 से नीचे घूमता रहता है] (https://stackoverflow.com/questions/1267869/how-can-i-force-division-to-be-floating-point-in-python-division-keeps-rounding) – smci