आप डबल परिशुद्धता बाइनरी, जो 53 महत्वपूर्ण बिट तक ही सीमित है में हाथ से गणना करते हैं, तो आप देखेंगे क्या हो रहा है:
129,95 = 1,0000001111100110011001100110011001100110011001100110 एक्स 2^7
129,95 * 100 = 1.1001011000010111111111111111111111111111111111111111011 एक्स 2^13
यह 56 महत्वपूर्ण बिट लंबे, इसलिए 53 बिट के लिए गोल यह
1,10010110000101111111111111111111111111111111111111 है 11 x 2^13 है, जो बराबर होती है
12994,999999999998181010596454143524169921875
अब 129.95 * 10 = 1.01000100110111111111111111111111111111111111111111111 एक्स 2^10
यह 54 महत्वपूर्ण बिट लंबे, इसलिए 53 बिट यह है करने के लिए गोल है १.०१०००१००१११ एक्स 2^10 = 1299,5
अब 1299.5 * 10 = 1.1001011000011 एक्स 2^13 = 12995.
स्रोत
2010-10-30 01:56:09
सबसे अधिक संभावना चल बिन्दु संख्या के द्विआधारी प्रतिनिधित्व के कारण। मुझे लगता है कि बेस 2 में आप 12 9.9 5 बिल्कुल नहीं लिख सकते हैं। –
अनिवार्य लिंक: [प्रत्येक कंप्यूटर वैज्ञानिक को फ्लोटिंग-प्वाइंट अंकगणितीय के बारे में क्या पता होना चाहिए] (http://docs.sun.com/source/806-3568/ncg_goldberg.html) –
इस पर कोई संकेत नहीं है कि यह क्यों नहीं होगा मुझे? मैं इसे प्रदर्शित करने की कोशिश कर रहा हूं, और मैं ऊपर आईआरबी में 12 9.9 5 * 100 दर्ज करता हूं और मुझे अप्रत्याशित रूप से सही उत्तर मिलता है। – Joel