हां और नहीं। हां, क्योंकि एक अमूर्त अर्थ में अनंतता अनंत है (और, जैसा कि मैंने नीचे बताया है, अधिकांश कोड फ्लोट के प्रयोजनों के लिए वैसे भी युगल में परिवर्तित हो जाते हैं)।
नहीं, हालांकि, थोड़ा स्तर पर दो infinities अलग हैं। जावा में एक डबल 64 बिट्स है, और एक फ्लोट जावा में 32 बिट्स है, इसलिए मामूली रूप से वे प्रतिनिधित्व स्तर पर अलग हैं।
जावा में, फ्लोटिंग-पॉइंट नंबर (फ्लोट्स और डबल्स) का प्रतिनिधित्व IEEE 754 फ़्लोटिंग-पॉइंट प्रारूप का उपयोग करके किया जाता है, जो मानक आजकल हर किसी का उपयोग करता है। प्रत्येक संख्या को बाइनरी में साइन बिट के रूप में दर्शाया जाता है, साथ ही एक्सपोनेंट बिट्स की एक निश्चित संख्या, साथ ही मंटिसा (महत्व) बिट्स की एक निश्चित संख्या भी होती है। या तो एक फ्लोट या डबल में, पॉजिटिव इन्फिनिटी को 0 के साइन बिट के साथ दर्शाया जाता है, एक्सपोनेंट बिट्स सभी 1, और मंथिसा बिट्स 0 का उपयोग करता है। नकारात्मक बिट को उसी तरह से दर्शाया जाता है, सिग्नल बिट को छोड़कर 1 है। इसलिए अनंतता का प्रतिनिधित्व किया जाता है दो बहुत ही समान तरीके, लेकिन फ्लोट्स और युगल के बीच घातीय और मंटिसा बिट्स की अलग-अलग मायने रखती है, बिट-स्तरीय पैटर्न अलग-अलग होते हैं।
कोड लिखने के प्रयोजनों के लिए, आप उन्हें उसी तरह से इलाज कर सकते हैं। जब भी आप युगल का उपयोग करते हैं और एक साथ तैरते हैं, जब तक कि आप स्पष्ट रूप से अन्यथा नहीं कहें, फ्लोट स्वचालित रूप से एक डबल पर डाला जाएगा और अभिव्यक्ति का परिणाम दोगुना हो जाएगा, इसलिए एक फ्लोट इन्फिनिटी "व्यावहारिक उद्देश्यों के लिए एक डबल अनंतता" की तरह काम करती है।
स्रोत
2012-04-10 05:13:12
मैं देखना
float
upcasting के बादdouble
साथdouble
की तुलना करें। और 'Double.compare (डबल, डबल)' विधि स्मार्ट (या शायद गूंगा?) 'Double.compare (Float.POSITIVE_INFINITY, Double.POSITIVE_INFINITY)' के लिए 0 लौटने के लिए पर्याप्त होगी? – user113454@ user1064918 इसका 'डबल' से कोई लेना देना नहीं है।तुलना करें (डबल, डबल) '। जैसा कि मैंने अपने जवाब में कहा है, जहां भी एक डबल की उम्मीद है और एक फ्लोट की आपूर्ति की जाती है, फ्लोट स्वचालित रूप से एक डबल पर डाला जाता है, इसलिए 'डबल डॉट कॉम (डबल, डबल)' केवल दो युगल देखता है। * जेवीएम और हार्डवेयर * 32-बिट अनंतता (फ्लोट) को पहचानने के लिए पर्याप्त स्मार्ट हैं और इसे 64-बिट अनंतता (डबल) में परिवर्तित करते हैं। –
यह समझ में आता है। धन्यवाद – user113454