आप दो कारणों के लिए अलग-अलग परिणाम देख रहे हैं:
विभाजन कदम दो अलग बातें कर रही है: में भाषाओं आप की कोशिश की के कुछ है, यह पूर्णांक विभाजन है, जो आंशिक भाग को छोड़ देता है का प्रतिनिधित्व करता है परिणाम का और केवल पूर्णांक भाग रखता है। दूसरों में यह वास्तविक गणितीय विभाजन का प्रतिनिधित्व करता है (जो पाइथन की शब्दावली के बाद मैं नीचे "सच्चा विभाजन" कहूंगा), एक वास्तविक फ़्लोटिंग पॉइंट परिणाम को वास्तविक मात्रा के करीब लौटाता है।
कुछ भाषाओं में (मनमानी परिशुद्धता के लिए समर्थन वाले) में, बड़ी संख्यात्मक मान 10190150730169267102
बिल्कुल प्रदर्शित किया जा रहा है; दूसरों में, यह निकटतम प्रतिनिधित्व करने योग्य फ़्लोटिंग-पॉइंट मान द्वारा प्रतिस्थापित किया जाता है। 1. और 2 में संभावनाओं की
विभिन्न संयोजनों ऊपर आप विभिन्न परिणाम देते हैं।
विस्तार से: पर्ल, अजीब, और आर में, हम फ़्लोटिंग-पॉइंट मानों और सच्चे विभाजन के साथ काम कर रहे हैं। एक मशीन पूर्णांक में स्टोर करने के लिए मूल्य 10190150730169267102
बहुत बड़ा है, इसलिए यह सामान्य आईईईई 754 बाइनरी 64 फ्लोटिंग-पॉइंट प्रारूप में संग्रहीत है। वह प्रारूप उस विशेष मूल्य का बिल्कुल प्रतिनिधित्व नहीं कर सकता है, इसलिए संग्रहीत किया जाता है निकटतम मूल्य उस प्रारूप में प्रतिनिधित्व योग्य है, जो 10190150730169266176.0
है। अब हम 1000
द्वारा अनुमानित रूप से विभाजित करते हैं, फिर एक फ़्लोटिंग-पॉइंट परिणाम देते हैं। सटीक मात्रात्मक, 10190150730169266.176
, फिर से बाइनरी 64 प्रारूप में बिल्कुल प्रतिनिधित्व योग्य नहीं है, और हमें निकटतम प्रतिनिधित्व करने योग्य फ्लोट मिलता है, जो 10190150730169266.0
होता है।शेष मॉड्यूलो 10
लेना 6
देता है।
बीसी और पायथन 2 में, हम मनमानी-परिशुद्धता पूर्णांक और पूर्णांक विभाजन के साथ काम कर रहे हैं। वे दोनों भाषाएं संख्यात्मक रूप से प्रतिनिधित्व कर सकती हैं। विभाजन परिणाम 10190150730169267
है (हम पूर्णांक विभाजन कर रहे हैं, सच विभाजन नहीं, इसलिए आंशिक भाग त्याग दिया गया है), और शेष मॉड्यूल 10
7
है। (यह थोड़ा अधिक है: प्रारूप जो बीसी आंतरिक रूप से उपयोग कर रहा है वह कुछ मनमानी-सटीक पूर्णांक प्रकार की तुलना में पाइथन के Decimal
प्रकार के करीब कुछ है, लेकिन इस मामले में प्रभाव समान है।)
पायथन 3 में, हम मनमानी-परिशुद्धता पूर्णांक और सच्चे विभाजन के साथ काम कर रहे हैं। संख्यात्मक रूप से बिल्कुल प्रतिनिधित्व किया जाता है, लेकिन विभाजन का परिणाम वास्तविक भाग्य के निकटतम फ़्लोटिंग-पॉइंट मान है। इस मामले में सटीक भाग 10190150730169267.102
है, और निकटतम प्रतिनिधित्व करने योग्य फ़्लोटिंग-पॉइंट मान 10190150730169268.0
है। उस मान के शेष को लेना मॉड्यूलो 10
8
देता है।
सारांश:
- पर्ल, awk, आर: फ्लोटिंग प्वाइंट अनुमानों, सच विभाजन
- ई.पू., अजगर 2: मनमाना परिशुद्धता पूर्णांकों, पूर्णांक विभाजन
- अजगर 3: मनमाना परिशुद्धता पूर्णांकों सच विभाजन
स्रोत
2016-08-23 17:01:27
लघु अवधि में ओवरफ़्लो और aproximations। –
@ जॉन डू ओके, लेकिन इतना बड़ा अंतर क्यों? – terdon
आर में यह स्पष्ट है, मुझे लगता है कि ऐसा इसलिए है क्योंकि '%%' '/' से अधिक प्राथमिकता है। पायथन में, '101 9 0150730169267102/1000' एक बड़ी संख्या है, मुझे लगता है कि यह छोटा हो गया है या कुछ .. – Maroun