क्योंकि एक float
ही के बारे में 7 से 8 महत्वपूर्ण अंक पकड़ कर सकते हैं।
आप टी कर सकते हैं कम्प्यूटर के तरीके के रूप में फ्लोटिंग पॉइंट का संकेत वैज्ञानिक संकेत कर रहा है, लेकिन बाइनरी में।
परिशुद्धताlog(2^number of significand bits)
के बराबर है। इसका मतलब है कि float
log(2^24) = 7.225
महत्वपूर्ण अंक रख सकता है।
संख्या 2,000,000,050 में 9 महत्वपूर्ण अंक हैं। उपर्युक्त गणना हमें बताती है कि 24-बिट महत्व और कई महत्वपूर्ण अंक नहीं रख सकते हैं। कारण 2,000,000,000 काम करता है क्योंकि केवल 1 महत्वपूर्ण अंक है, इसलिए यह महत्व में फिट बैठता है।
समस्या को हल करने के लिए, आप double
का उपयोग करेंगे क्योंकि इसमें 52-बिट महत्व है, जो हर संभव 32-बिट संख्या का प्रतिनिधित्व करने के लिए पर्याप्त है।
स्रोत
2010-11-04 05:32:31
वैसे, इस "समस्या" जावा तक सीमित नहीं है; आईईईई 754 मानक द्वारा परिभाषित अनुसार, बाइनरी में फ्लोट्स का प्रतिनिधित्व कैसे किया जाता है इसके साथ यह करना है। –