वे असामान्य फ्लोटिंग-पॉइंट परिशुद्धता के साथ। स्टोर नहीं कर रहे हैं। वे दोहरी परिशुद्धता के साथ value के लिए गलत मान का उपयोग कर रहे हैं। 3.1415926536 बाइनरी में अनुमानित करने के लिए , कम से कम 38 बिट्स की आवश्यकता होती है:
3.14159265359922… > 11.001001000011111101101010100010001001
ध्यान दें कि 2 ^ -36 लगभग 1.5e-11 है, जो अनुगामी 99 के साथ मेल खाता है। डबल-सटीक फ़्लोटिंग-पॉइंट का 52-बिट महत्व है। cos(pi/2)
-5 ई -12 के रूप में मूल्यांकन करने के लिए , केवल अन्य संभव विकल्प 48-बिट प्रकार होगा, जो बहुत ही अजीब होगा।
0 और where के पास, जहाँ व्युत्पन्न लगभग शून्य है, cos (cannot) की गणना बहुत सटीक नहीं की जा सकती है:
cos(3.1415926536) ≈ -0.999999999999999999999947911
यह -1 से लगभग 5.2e-23 से भिन्न है, जो कि, से छोटा है double
, इसलिए cos(3.1415926536)
इसकी गणना ठीक -1 के रूप में की जाती है ... जो कि गलत है।
Near- / 2 के पास, व्युत्पन्न [ -sin ( ] ) ] लगभग, 1 है, इसलिए इनपुट पर त्रुटि आउटपुट बन जाती है।
cos(1.57079632679961) ≈ -4.71338076867830836e-12
cos(1.57079632679962) ≈ -4.72338076867830836e-12
cos(1.57079632680000) ≈ -5.10338076867830836e-12
मेरे पास एक TI कैलकुलेटर है जो एक कम अंक प्रदर्शित करता है और cos(π/2)
-5.2e-12 के रूप में गणना करता है। हालांकि, यह इलेक्ट्रॉनिक रूप से बहुत अलग है और इसके लिए एक सटीक मूल्य देने के लिए डिज़ाइन किया गया था cos(90°)
।
मुझे लगता है कि स्पॉटलाइट में, cos(pi/2)
π के लिए एक मान प्राप्त करके गणना की जा रही है, दशमलव स्ट्रिंग में परिवर्तित करते हुए , यह कहते हुए कि (सटीक, तर्कसंगत) बाइनरी मान 11.00100100001111010101010101000100000000111101111 (या 10000), 2 से विभाजित, और फिर अनिवार्य रूप से घटाकर। सही मूल्य π / 2 की। आपको पता लगाना चाहिए कि क्या cos(pi/2 + cos(pi/2))
यह शून्य के करीब है (यह -2.2e-35 हो सकता है)।
दो की शक्ति से गुणा केवल घातांक को प्रभावित करना चाहिए, महत्व को नहीं। यह निर्धारित करना संभव हो सकता है कि बार-बार आधा करने या दोहरीकरण द्वारा गोलाई कैसे लागू की जाती है।