ديف تايلور
ملصق أصلي- 6 نوفمبر 2007
- أبردينشاير ، اسكتلندا
- 25 يناير 2010
public double calcBMI() { double BMI; BMI = weight / (height * height); return BMI; if (BMI >=30) { return BMI.toString + 'Obese'; } else if (BMI >=25) { return BMI.toString + 'Overweight'; } else if (BMI >=18.5) { return BMI.toString + 'Normal Weight'; } else { return BMI.toString + 'Underweight'; } }
يساعد؟ مضحك جدا
iShater
- 13 أغسطس 2002
- شيكاغولاند
- 25 يناير 2010
ستانل 8
- 24 ديسمبر 2009
- مانشستر ، المملكة المتحدة
- 25 يناير 2010
العودة ('' + مؤشر كتلة الجسم) ؛
أي أن عامل التشغيل '+' سينفذ التسلسل.
ثانيًا ، لا أفهم متى سيتم تنفيذ عبارات if لأن لديك عبارة إرجاع أعلاه سيتم تنفيذها دائمًا د
ديف تايلور
ملصق أصلي- 6 نوفمبر 2007
- أبردينشاير ، اسكتلندا
- 25 يناير 2010
قال iShater: هل يمكنك نشر الخطأ الفعلي؟ لماذا هو بيان العودة الخاص بك قبل نهاية طريقتك؟ انقر فوق لتوسيع...
لا يمكن إلغاء الإشارة إلى الخطأ الفعلي هو الخطأ المزدوج.
Cromulent
- 2 أكتوبر 2006
- أرض الأمل والمجد
- 25 يناير 2010
ثانيًا ، تُرجع طريقتك ضعفًا ولكنك تحاول إرجاع سلسلة في عبارات if .. else.
ثالثًا ، عند استدعاء طريقة toString () ، تحتاج إلى استخدام الكائن Double بدلاً من النوع البدائي. لذلك يجب أن تعلن أن مؤشر كتلة الجسم مزدوج (java.lang.Double) بدلاً من ضعف.
اليك مثال بسيط:
الكود:
public class Main { public static void main(String[] args) { Double test; test = 0.843; String test_string = test.toString(); System.out.println(test_string); System.out.println(test); } }
chown33
الوسيط
موظف- 9 أغسطس 2009
- الطائرة السحيقة
- 25 يناير 2010
قال DaveTaylor: الخطأ الفعلي هو ضعف لا يمكن إلغاء الإشارة إليه. انقر فوق لتوسيع...
أولاً ، لا يمكنك فعل هذا:
الكود:
... BMI.toString ...
لأنه تم إعلان مؤشر كتلة الجسم كـ مزدوج ، النوع البدائي. Java لا تقوم بعمل autoboxing في هذه الحالة ، على ما أذكر.
إذا تم التصريح عن مؤشر كتلة الجسم باسم مزدوج ، فئة الغلاف للنوع البدائي ، فقد تنجح ...
باستثناء أنه لا يمكنك القيام بذلك:
الكود:
... someObject.someMethod ...
لأن Java لا تضيف لك تلقائيًا (). إذا كنت تريد استدعاء التابع toString على كائن ما ، فعليك كتابته كاستدعاء عملية:
الكود:
... anyObject.toString() ...
إذا كنت لا تستخدم برنامجًا تعليميًا أو كتابًا ، فيجب أن تفعل ذلك حقًا.
1210
- 10 يناير 2005
- دالاس ، تكساس
- 25 يناير 2010
-يقرأ ج
سي اكس 300
- 12 سبتمبر 2008
- كليرمونت ، فلوريدا
- 25 يناير 2010
الكود:
public String calcBMI(int height, int weight) { double BMI; BMI = (weight / (height * height)); String str = ; if (BMI >=30) { str = (Double.toString(BMI) + Obese); return str; } else if (BMI >=25) { str = (Double.toString(BMI) + Overweight); return str; } else if (BMI >=18.5) { str = (Double.toString(BMI) + Normal Weight); return str; } else { str = (Double.toString(BMI) + Underweight); return str; } }
chown33
الوسيط
موظف- 9 أغسطس 2009
- الطائرة السحيقة
- 25 يناير 2010
قال cx300: جافا خاصتي صدئة قليلاً لكن هذا يجب أن يكون صحيحًا ...
الكود:public String calcBMI(int height, int weight) { double BMI; BMI = (weight / (height * height));
انقر فوق لتوسيع...
عندما يكون الحساب (الوزن / (الكتلة * الكتلة)) بدون معاملات أخرى ، تكون وحدات الارتفاع بالأمتار ووحدات الكتلة (الوزن) بالكيلوجرام. إذا كان الارتفاع يمكن أن يأخذ فقط عدادات صحيحة (1 ، 2 ، 3) ، فأنت تواجه مشكلة دقة خطيرة.
http://en.wikipedia.org/wiki/Body_mass_index
أيضًا ، لن تنتج هذه الأنواع أبدًا أي قيمة كسرية في النتيجة ، لأن العملية الحسابية تتم بالكامل في الحساب الصحيح (أي القسمة المقطوعة) ، ثم يتم تحويل نتيجة العدد الصحيح إلى مضاعفة. إذا كنت تريد حسابًا مزدوجًا مع إمكانية وجود جزء كسري ، فيجب أن يكون معامل واحد على الأقل من النوع double.
لا أعتقد أن هذه المشكلة خاصة بجافا. ستواجه مشاكل مماثلة في لغة C ، والتي لها قواعد متشابهة في الحساب الصحيح والمزدوج.
المشاركات الشعبية