2011-04-21 13 views
6

mma help docs for Position में, निम्न "संभावित मुद्दे"स्थिति का उपयोग सही ढंग से

In[1]:= Position[Range[-1, 1, 0.05], 0.1] 
Out[1]= {} 

के अंतर्गत सूचीबद्ध है कोई हालांकि दिया स्पष्टीकरण नहीं है। ऐसा क्यों होता है? तो अगर मुझे की स्थिति Range[-1,1,0.05] में खोजने की ज़रूरत है, तो मैं इसे कैसे कर सकता हूं?

+0

नज़दीकी वोट को अनदेखा करें ... मैं सिर्फ विकल्प बंद करने के लिए वोट देखने के लिए उत्सुक था, भले ही मेरे पास पर्याप्त प्रतिनिधि न हो और एक कास्ट न हो। मैं देख सकता हूं कि यह केवल मेरी पोस्ट पर काम करता है और पूरी साइट पर नहीं:/ –

+0

संबंधित प्रश्न: http://stackoverflow.com/questions/5185281/what-is-causing-this-strange-mathematica-result –

+6

ओ'बी आज आपके पास एक गहन दिन रहा है। अपने वोटों को समाप्त करना और अपनी पोस्ट को बंद करने के लिए मतदान करना ... pheeeew :) –

उत्तर

9

यह एक संख्यात्मक परिशुद्धता मुद्दा है: 0.1 Range में इस बल्कि निहित SameQ से Equal साथ तुलना करने के लिए है हल करने के लिए सामान्य तरीके से 0.1 में टाइप के रूप में ही आंतरिक रूप से नहीं है।।

Position[Range[-1, 1, 0.05], x_ /; x == 0.1] 
+0

उत्तर के लिए धन्यवाद। मैं अभी भी थोड़ा उलझन में हूँ। अगर मैं 'फुलफॉर्म @ रेंज [-1, 1, 0.05] 'करता हूं, तो' 0.1' के लिए संबंधित मान '0.10000000000000009' है। अब अगर मैं '0.10000000000000009 == 1' करता हूं, तो मुझे 'गलत' मिलता है। यह आपके कोड में 'ट्रू' क्यों लौटाता है (जो संभवतः यह स्थिति को कैसे पाता है)? –

+0

आपने अभी लिखा है: '0.10000000000000009 == 1' लेकिन मुझे लगता है कि आपका मतलब है '0.10000000000000009 == 0.1'; क्या वह अभी भी 'झूठा' वापस आता है? –

+0

बकवास। मेरी आँखें! ओउ! मैं बेवकूफ़ हूँ। सहायता के लिए धन्यवाद। –

संबंधित मुद्दे