अन्य

मैक [जावा] डबल को संदर्भित नहीं किया जा सकता

डी

डेव टेलर

मूल पोस्टर
नवम्बर 6, 2007
एबरडीनशायर, स्कॉटलैंड
  • जनवरी 25, 2010
कोड: |_+_|
मदद? ज़ोर - ज़ोर से हंसना

आईशैटर

अगस्त 13, 2002


Chicagoland
  • जनवरी 25, 2010
क्या आप वास्तविक त्रुटि पोस्ट कर सकते हैं? आपकी विधि के अंत से पहले आपका रिटर्न स्टेटमेंट क्यों है? एस

स्टेनल8

24 दिसंबर 2009
मैनचेस्टर, यूके
  • जनवरी 25, 2010
सबसे पहले आपको कोशिश करनी चाहिए
वापसी ('' + बीएमआई);
यानी '+' ऑपरेटर कॉन्सटेनेशन करेगा।

दूसरा, मुझे समझ में नहीं आता है कि अगर स्टेटमेंट्स कभी भी निष्पादित होंगे क्योंकि आपके ऊपर एक रिटर्न स्टेटमेंट है जो हमेशा निष्पादित होगा डी

डेव टेलर

मूल पोस्टर
नवम्बर 6, 2007
एबरडीनशायर, स्कॉटलैंड
  • जनवरी 25, 2010
iShater ने कहा: क्या आप वास्तविक त्रुटि पोस्ट कर सकते हैं? आपकी विधि के अंत से पहले आपका रिटर्न स्टेटमेंट क्यों है? विस्तार करने के लिए क्लिक करें...

वास्तविक त्रुटि डबल है जिसे संदर्भित नहीं किया जा सकता है।

क्रॉमुलेंट

2 अक्टूबर 2006
आशा और महिमा की भूमि
  • जनवरी 25, 2010
सबसे पहले आप अपने if.. को हिट करने से पहले वापस लौटते हैं और स्टेटमेंट्स का मतलब है कि उन्हें कभी कॉल नहीं किया जाएगा।

दूसरा, आपकी विधि एक डबल लौटाती है, फिर भी आप अपने if.. अन्य कथनों में एक स्ट्रिंग वापस करने का प्रयास कर रहे हैं।

तीसरा, toString () विधि को कॉल करते समय आपको आदिम प्रकार के बजाय डबल ऑब्जेक्ट का उपयोग करने की आवश्यकता होती है। तो आपको बीएमआई को डबल के बजाय डबल (java.lang.Double) घोषित करना चाहिए।

ये रहा एक सरल उदाहरण:

कोड: |_+_|

chown33

मध्यस्थ
स्टाफ के सदस्य
अगस्त 9, 2009
अबाध विमान
  • जनवरी 25, 2010
डेव टेलर ने कहा: वास्तविक त्रुटि डबल है जिसे संदर्भित नहीं किया जा सकता है। विस्तार करने के लिए क्लिक करें...

सबसे पहले, आप यह नहीं कर सकते:
कोड: |_+_|
क्योंकि बीएमआई को घोषित किया जाता है दोहरा , आदिम प्रकार। जैसा कि मुझे याद है, जावा इस स्थिति में ऑटोबॉक्सिंग नहीं करता है।

यदि बीएमआई को के रूप में घोषित किया गया था दोहरा , आदिम प्रकार के लिए रैपर वर्ग, तो यह काम कर सकता है ...

सिवाय इसके कि आप ऐसा नहीं कर सकते:
कोड: |_+_|
क्योंकि जावा स्वचालित रूप से आपके लिए () नहीं जोड़ता है। यदि आप किसी ऑब्जेक्ट पर toString विधि को लागू करना चाहते हैं, तो आपको इसे एक विधि आमंत्रण के रूप में लिखना होगा:
कोड: |_+_|
यदि आप किसी ट्यूटोरियल या पुस्तक का उपयोग नहीं कर रहे हैं, तो आपको वास्तव में ऐसा होना चाहिए।

ली1210

जनवरी 10, 2005
डलास, TX
  • जनवरी 25, 2010
मैं सिर्फ java.lang.String's valueOf(double) विधि के उपयोग का सुझाव देकर अब तक किए गए अच्छे अवलोकनों में जोड़ना चाहता था। आप इसे चला सकते हैं और एक स्ट्रिंग वापस प्राप्त कर सकते हैं। स्ट्रिंग + डबल ऑपरेटर का उपयोग करना भी ठीक काम करता है, लेकिन इसकी आवश्यकता नहीं है यदि आप चाहते हैं कि स्ट्रिंग डबल का प्रतिनिधित्व हो।

-पढ़ना सी

सीएक्स300

सितम्बर 12, 2008
क्लेरमोंट, FL
  • जनवरी 25, 2010
मेरा जावा थोड़ा जंग लगा है लेकिन यह सही होना चाहिए ...

कोड: |_+_|

chown33

मध्यस्थ
स्टाफ के सदस्य
अगस्त 9, 2009
अबाध विमान
  • जनवरी 25, 2010
सीएक्स 300 ने कहा: मेरा जावा थोड़ा जंगली है लेकिन यह सही होना चाहिए ...

कोड: |_+_| विस्तार करने के लिए क्लिक करें...

जब गणना (वजन/(द्रव्यमान * द्रव्यमान)) बिना किसी अन्य गुणांक के होती है, तो ऊंचाई इकाइयाँ मीटर होती हैं और द्रव्यमान (वजन) इकाइयाँ किलोग्राम होती हैं। यदि ऊंचाई केवल पूर्णांक मीटर (1, 2, 3) ले सकती है, तो आपके पास एक गंभीर सटीक समस्या है।

http://en.wikipedia.org/wiki/Body_mass_index

साथ ही, ये प्रकार परिणाम में कभी भी कोई भिन्नात्मक मान उत्पन्न नहीं करने वाले हैं, क्योंकि गणना पूरी तरह से पूर्णांक अंकगणित (अर्थात ट्रंकिंग डिवीजन) में की जाती है, फिर पूर्णांक परिणाम को डबल में बदल दिया जाता है। यदि आप भिन्नात्मक भाग की संभावना के साथ दोहरी गणना चाहते हैं, तो कम से कम एक ऑपरेंड डबल प्रकार का होना चाहिए।

मुझे नहीं लगता कि यह समस्या जावा के लिए अद्वितीय है। आपको सी में समान समस्याएं होंगी, जिसमें पूर्णांक और दोहरे अंकगणित के लिए समान नियम हैं।