में float` और` float64` मैं दो संख्याओं की तुलना करने के लिए है। उनमें से एक regulat पायथन कोड से आता है और दूसरे से numpy आता है। डीबगर से पता चलता है कि वे एक ही मूल्य '29 .0 है ', लेकिन पहले के प्रकार float
है और दूसरा के प्रकार float64
है, इसलिए a == b
और a - b == 0
False
है। मैं इसके साथ कैसे निपट सकता हूं? वहाँ बल एक नियमित रूप से अजगर चर करने के लिए किसी भी तरह से float64
या numpy उपयोग डिफ़ॉल्ट रूप से float
होने के लिए है?`अजगर
अद्यतन: इन सभी मानों के अंत में उसी फ़ाइल से आता है जहां 29.0
लिखा गया है, इसलिए मुझे नहीं लगता कि संख्यात्मक मानों में अंतर हैं।
आमतौर पर 'एक == b' या' एक साथ किसी भी दो तैरता की तुलना - ख == 0' परिशुद्धता त्रुटियों के कारण एक बुरा विचार है। 'Abs (a - b) <1e-8' या कुछ जैसी कुछ करने का प्रयास करें। – wflynny
फ़्लोटिंग-पॉइंट प्रस्तुति और अंकगणित सटीक नहीं हैं (मंथिस और छिद्रण पीबी)। अधिकतम अंतर का एक ईपीएसलॉन सेट करें (आमतौर पर 10e-10)। – lucasg
सामान्य रूप से इन टिप्पणियों को सही होने के लिए, मैं मूल्य 2 9 .0' में एक सटीक त्रुटि की कल्पना नहीं कर सकता, अगर यह फ़ाइल से आता है जो शायद ASCII प्रारूप में है। 29.0 बिल्कुल प्रतिनिधित्व किया जा सकता है। – glglgl