जब हम जावा में आदिम प्रकारों में MIN_VALUE फ़ंक्शन का उपयोग करते हैं तो यह हमें उस प्रकार के लिए न्यूनतम मान प्रदान करता है। लेकिन फ्लोट और डबल के मामले में यह न्यूनतम सकारात्मक मूल्य लौटा, हालांकि फ्लोट और डबल के नकारात्मक मूल्य भी हो सकते हैं।जावा में फ्लोट का न्यूनतम मूल्य सकारात्मक क्यों है?
उत्तर
जावा में फ्लोट का न्यूनतम मूल्य सकारात्मक क्यों है?
उन्होंने इस तरह के स्थिरांक का नाम क्यों चुना है, यह असंभव है (हमारे द्वारा) क्योंकि निर्णय लेने पर कमरे में कोई भी कमरे में नहीं था।
इसके अलावा, प्रश्न का उत्तर जानने में मदद नहीं की जा रही है, क्योंकि Float.MIN_VALUE
और Double.MIN_VALUE
के मान बदले नहीं जाएंगे, इससे कोई फर्क नहीं पड़ता कि वे "गलत" कैसे हो सकते हैं। (यह किसी भी मौजूदा कोड को तोड़ देगा जो इन स्थिरांकों का उपयोग करता है, और जावा डिज़ाइनर केवल ऐसा करते हैं जब कोई अन्य व्यवहार्य विकल्प नहीं होता है। इसे अकेला छोड़ना स्पष्ट रूप से एक व्यवहार्य विकल्प है।)
मुझे लगता है, उत्तर (यानी असली निर्णय के लिए कारण) ब्रांड नई प्रोग्रामिंग भाषाओं के विकास के लिए प्रासंगिक हो सकता है। हालांकि, उन्हें वैसे भी अपने दिमाग बनाने की ज़रूरत है। एफडब्ल्यूआईडब्ल्यू, मैंने इसे इस तरह से डिजाइन नहीं किया होगा, लेकिन यह प्रासंगिक नहीं है।
MIN_VALUE आपको बताता है कि एक फ्लोट कितना सटीक हो सकता है, लेकिन गणितीय न्यूनतम यह प्रतिनिधित्व नहीं कर सकता है। उन्हें इसे बेहतर नाम देना चाहिए था ...
MAX_VALUE का नकारात्मक फ्लोट के लिए गणितीय न्यूनतम मान है (जो डबल के लिए जाता है)।
कारण आप इस मान सकते हैं कि कैसे संख्या बाइनरी में प्रतिनिधित्व कर रहे हैं के साथ क्या करना है:
जावा नाव और युगल संकेत बिट का उपयोग के रूप में पूर्णांक के लिए दो के पूरक प्रतिनिधित्व करने के लिए विरोध नकारात्मक/सकारात्मक मूल्यों का प्रतिनिधित्व करने के लिए। इसका मतलब है कि यह सकारात्मक और नकारात्मक मूल्य समान परिमाण है, यानी। - (सकारात्मक अधिकतम) = नकारात्मक अधिकतम। इसलिए आपको फ्लोट के लिए वास्तविक गणितीय न्यूनतम स्थिरता को परिभाषित करने की आवश्यकता नहीं है क्योंकि आप ऋणात्मक सीमा के बारे में जानने के लिए केवल सकारात्मक अधिकतम स्थिरता का उपयोग कर सकते हैं। पूर्णांक के लिए, आपको द्विआधारी, i.e. -max! = Min में जिस तरह से प्रदर्शित किया गया है, उसके कारण अधिकतम/मिनट को परिभाषित करने के लिए आपको 2 अलग-अलग स्थिरांक की आवश्यकता होती है।
अधिक जानकारी http://people.uncw.edu/tompkinsj/133/numbers/Reals.htm
यह असंगत नामकरण की व्याख्या नहीं करता है, जो प्रश्न का वास्तविक बिंदु है। –
अच्छा बिंदु, यह बहुत प्रतिद्वंद्वी है ... मुझे लगता है कि उन्हें इसे PRECISION या कुछ नाम देना चाहिए था ... मेरा जवाब संपादित किया –
MIN_VALUE
लिए EPSILON
नाम दिया जाना चाहिए यह सबसे छोटी postive मूल्य एक नाव का प्रतिनिधित्व कर सकते हैं।
चूंकि एक फ्लोट साइन-आयाम एन्कोडिंग का उपयोग करता है, इसलिए फ्लोट का निम्नतम मूल्य -MAX_VALUE
का प्रतिनिधित्व कर सकता है।
एक संभावित व्याख्या हो सकता है कि जावा सिर्फ सी ++, जो फिर से सी
से नाम विरासत में मिला जावा सी ++, जो एक ही भ्रामक नामकरण पैटर्न के शेयरों से प्रभावित था के रूप में ही नामकरण परंपरा का इस्तेमाल किया।
न्यूनतम परिमित मूल्य: सी ++ में,
Float.MIN_VALUE
के सादृश्यstd::numeric_limits<T>::min()
है, जो के रूप में परिभाषित किया जाता है। denormalization (एक्सपोनेंट बिट्स की चर संख्या) के साथ फ़्लोटिंग प्रकार के लिए: न्यूनतम सकारात्मक सामान्यीकृत मूल्य।न्यूनतम परिमित मूल्य:
C++ में टेम्पलेट कोड में कीड़े का एक संभावित स्रोत है, तो सी ++ 11 में बाद में है कि, वे
std::numeric_limits<T>::lowest()
है, जो के रूप में परिभाषित किया गया है जोड़ा। (चूंकि सी ++ 11) अभिन्न प्रकारों के लिए: न्यूनतम() के समान। फ़्लोटिंग-पॉइंट प्रकारों के लिए: कार्यान्वयन-निर्भर; आम तौर पर, अधिकतम() के नकारात्मक।
लेकिन सी ++ पहली भाषा नहीं थी। यह सब वापस सी पर जाता है, जो FLT_MIN को न्यूनतम फ़्लोटिंग पॉइंट मान परिभाषित करता है।
तो, सी ने फ़्लोटिंग पॉइंट नंबरों और पूर्णांकों के पूर्णांक को कम करने के लिए क्यों चुना?
सुनिश्चित नहीं है, लेकिन इसे समरूपता के साथ करना पड़ सकता है (this answer देखें)। फ्लोट्स के लिए, आप -FLT_MAX
(या -Float.MAX_VALUE
) का उपयोग कर सकते हैं। पूर्णांक के लिए, अधिकतम मान को अस्वीकार करना पोर्टेबल नहीं है। वास्तव में, यह सभी आधुनिक वास्तुकलाओं पर आम तौर पर गलत है (जहां -INT_MAX == INT_MIN + 1
होना चाहिए)।
- 1. जावा में फ्लोट के लिए अधिकतम मूल्य?
- 2. जावा में रेंज (न्यूनतम, अधिकतम, मूल्य) फ़ंक्शन
- 3. हमेशा सकारात्मक मूल्य
- 4. एक परिवर्तनीय मूल्य सकारात्मक
- 5. जावा में न्यूनतम तिथि
- 6. सेटटाइमआउट का न्यूनतम मिलीसेकंड मूल्य क्या है?
- 7. फ्लोट मूल्य इंट
- 8. समयावधि अंतर मूल्य हमेशा सकारात्मक
- 9. नकारात्मक से सकारात्मक सीमा तक यादृच्छिक फ्लोट का निर्माण?
- 10. जावा में कोई छत (फ्लोट) क्यों नहीं है?
- 11. जावा, असंभव कास्ट ऑब्जेक्ट फ्लोट ..... क्यों?
- 12. सीएसएस फ्लोट न्यूनतम चौड़ाई और मार्जिन
- 13. अधिकतम क्लस्टर का न्यूनतम मूल्य ढूँढना?
- 14. जावा: डबल बनाम फ्लोट
- 15. अधिकतम क्या है। आईफोन पर डबल/फ्लोट का मूल्य?
- 16. फ्लोट बनाम डबल (जावा में)
- 17. इस फ्लोट का मूल्य उस चीज़ से क्यों बदलता है जो इसे सेट किया गया था?
- 18. जावा में फ्लोट और डबल की समावेशी रेंज क्या है?
- 19. जावा: फ्लोट प्रारूपण लोकेल
- 20. मैं वास्तव में जावा न्यूनतम ढेर आकार
- 21. जावा न्यूनतम निर्भरता
- 22. SO_RCVBUF का मूल्य क्यों बदलता नहीं है?
- 23. क्यों डिफ़ॉल्ट enum मान 0 है और न्यूनतम नहीं है?
- 24. मुझे 'फ्लोट **' को 'कॉन्स्ट फ्लोट **' में परिवर्तित करने में त्रुटि क्यों मिल रही है?
- 25. क्यों कोई Math.floor (फ्लोट) नहीं है?
- 26. जावा में डबल से फ्लोट में कनवर्ट करना
- 27. जावा में बाइट्स -128 से 127 की सीमा क्यों है?
- 28. फ्लोट के बजाय फ्लोटबफर क्यों []?
- 29. ऑरैकल में अनुक्रम में MAXVALUE का अधिकतम मूल्य क्या है?
- 30. फ्लोट वैरिएबल क्यों अजीब तरीके से बिंदुओं के बाद अंकों को काटकर मूल्य बचाता है?
+1 यह नोट करने के लिए कि प्रश्न को सुनवाई के लिए असंभव की आवश्यकता है। – Mikhail
आप वास्तव में यह नहीं बता सकते कि निर्णय लेने पर कमरे में कोई भी नहीं था :) (मुझे वैसे भी नहीं) – rupps
हालांकि, यह एक बहुत छोटा कमरा था, और जो लोग इसमें थे वे अब बहुत वरिष्ठ होंगे ... या सेवानिवृत्त ... या ... मुझे लगता है कि हम बहुत निश्चित हो सकते हैं। (क्या आपने कभी जेम्स गोस्लिंग को स्टैक ओवरफ्लो पर सवालों का जवाब दिया है?) –