पायथन में, जब एक बड़ी संख्या (पूर्णांक या फ्लोट) की गणना की जाती है, तो ऐसा लगता है कि संख्या वैज्ञानिक संकेतन में संग्रहीत की जाएगी और इसलिए गलत हो जाएगी। जैसे

>>> rst = 15
>>> dst = [10, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14, 10, 14]
>>> [float(dst[i])*float(rst)**float(i) for i in range(len(dst))]

[10.0, 210.0, 2250.0, 47250.0, 506250.0, 10631250.0, 113906250.0, 2392031250.0, 25628906250.0, 538207031250.0, 5766503906250.0, 121096582031250.0, 1297463378906250.0, 2.724673095703125e+16]
>>> # please note the last element is stored in scientific notation
>>> # but if calculate 14*15**13 (same as how the last element is calculated)
>>> 14*15**13
>>> 27246730957031250
>>> # result is fine
>>> 14*15**13 == dst[-1]
>>> False

मुझे अजगर बड़ी संख्या की गणना में वैज्ञानिक संकेतन को कैसे दबाना चाहिए?

1
user1116678 15 अक्टूबर 2020, 16:11

2 जवाब

सबसे बढ़िया उत्तर
please note the last element is stored in scientific notation
but if calculate 14*15**13 (same as how the last element is calculated)

अंतिम तत्व float है, जबकि 14**15**13 का परिणाम int है। यदि आप केवल ints के साथ काम कर रहे हैं (और विभाजित न करें) तो आपको int मिलेगा जिस स्थिति में e-नोटेशन का उपयोग नहीं किया जाता है।

0
Daweo 15 अक्टूबर 2020, 16:25

कृपया ध्यान दें कि किसी संख्या को स्मृति में कैसे संग्रहीत किया जाता है और गणना में उपयोग किया जा रहा है (फ्लोट या इंट के रूप में) और इसे कैसे स्ट्रिंग में परिवर्तित किया जाता है और स्क्रीन पर प्रदर्शित किया जाता है (पूर्णांक, निश्चित बिंदु या वैज्ञानिक संकेतन के रूप में गोल)। ये दो पूरी तरह से स्वतंत्र अवधारणाएँ हैं, इसलिए किसी चीज़ को एक निश्चित तरीके से प्रदर्शित करते हुए देखना स्वतः ही सटीकता के बारे में कुछ नहीं कहता है।

In [8]: i = 123

In [9]: print('integer displayed as int: %i, as fixed point: %.1f or %.3f, and in scientific notation: %e' % (i, i, i, i))
integer displayed as int: 123, as fixed point: 123.0 or 123.000, and in scientific notation: 1.230000e+02

In [10]: f = 1.23

In [11]: print('floating point displayed as int: %i, as fixed point: %.1f or %.3f, and in scientific notation: %e' % (f, f, f, f))
floating point displayed as int: 1, as fixed point: 1.2 or 1.230, and in scientific notation: 1.230000e+00
0
Bas Swinckels 15 अक्टूबर 2020, 16:45