के बीच अंतर प्रोग्रामिंग के दौरान मैंने math.exp (2) और math.e ** 2 के परिणाम के बीच एक अंतर देखा। जैसा कि आप नीचे देख सकते हैं, ई^1 की गणना करते समय यह अंतर उत्पन्न नहीं होता है।math.exp (2) और math.e ** 2
अनुभवी प्रोग्रामर नहीं होने पर, मुझे आश्चर्य हुआ कि यह क्यों अलग है? मुझे लगता है कि इसे गोल करने के साथ कुछ करना है। पायथन दस्तावेज़ कहते हैं कि math.exp(x)
वापसी e**x
, लेकिन ऐसा लगता है कि यह बिल्कुल सही नहीं है। तो कैसे math.exp(x)
ऑपरेशन math.e**x
से अलग है?
>>> math.exp(1)
2.718281828459045
>>> math.e**1
2.718281828459045
>>> math.exp(1)==math.e**1
True
>>> math.exp(2)
7.38905609893065
>>> math.e**2
7.3890560989306495
>>> math.exp(2)==math.e**2
False
>>> math.exp(100)
2.6881171418161356e+43
>>> math.e**100
2.6881171418161212e+43
>>> math.exp(100)==math.e**100
False
संबंधित: http://stackoverflow.com/a/15322395/1639625 मेरा अनुमान है: 'math.exp'' c' (या हार्डवेयर में भी) में लागू किया गया है और इस प्रकार थोड़ा अलग फ़्लोटिंग पॉइंट व्यवहार है। –
फिर से खोलने के लिए वोटिंग। बस "फ़्लोटिंग-पॉइंट गलत है" की तुलना में यहां और अधिक चल रहा है। विशेष रूप से, जैसा कि दो उत्तरों समझाते हैं, 'e ** x' की तुलना में' exp (x) 'अधिक सटीक होने की अपेक्षा करने के अच्छे कारण हैं। –