2016-04-07 1 views
-1

Проблема: мои вычисления отключены, когда я сравнил результаты моего приложения с веб-сайтом bmi. Чего вы так заблагорассудитесь, также моя математика действительно плоха, поэтому я заранее извиняюсь.Мои вычисления отключены при создании калькулятора BMI

Вот результаты, что мое приложение дает мне:

http://www.tiikoni.com/tis/view/?id=8bd04d4

Вот результаты, основанные на ИМТ Сайт NIH

http://www.tiikoni.com/tis/view/?id=86d4458

BMIFRAG.java

 public class BmiFrag extends Fragment implements View.OnClickListener 
     { 

     Button BmiButton; 

     public static EditText heightFT; 
     public static EditText heightIn; 
     public static EditText weightIn; 


     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 


     View myView = inflater.inflate(R.layout.fragment_bmi, container, 
     false); 
     BmiButton = (Button) myView.findViewById(R.id.CalculateBmi); 
     BmiButton.setOnClickListener(this); 
     return myView; 
    } 

     @Override 
     public void onClick(View v) { 
     switch (v.getId()) { 

     case R.id.CalculateBmi: 







        weightIn = (EditText) 
       getActivity().findViewById(R.id.ETtweight); 

       heightIn = (EditText) 
       getActivity().findViewById(R.id.ETHeightIn); 

       heightFT = (EditText) 
       getActivity().findViewById(R.id.ETHeightFT); 

       final TextView tv4 = (TextView) 
       getActivity().findViewById(R.id.TFDisplayBmi); 


       String getWeightIN = weightIn.getText().toString(); 




      String getHeightIN = heightIn.getText().toString(); 

      String getHeightFT = heightFT.getText().toString(); 



      if (TextUtils.isEmpty(getWeightIN)) { 



       weightIn.setError("Please enter your weight"); 
       weightIn.requestFocus(); 
       return; 
      } 

      else if (TextUtils.isEmpty(getHeightIN)) { 
       heightIn.setError("Please enter your height in Inches"); 
       heightIn.requestFocus(); 
       return; 
      } 

      else if (TextUtils.isEmpty(getHeightFT)) { 
       heightFT.setError("Please enter your height in Feet"); 
       heightFT.requestFocus(); 
       return; 
      } 


      else { 

       float weight = Float.parseFloat(getWeightIN); 

       float heightIN = Float.parseFloat(getHeightIN) ; 
       float heightFT = Float.parseFloat(getHeightFT) ; 

       float bmiValue = calculateBMI(weight,heightIN,heightFT); 

       String bmiInterpretation = interpretBMI(bmiValue); 

        tv4.setText(String.valueOf(bmiValue + "-" + 
       bmiInterpretation)); 


       } 



       break; 

      } 
     } 


     private float calculateBMI(float weight, float heightIN, float v) { 



     float bmi= (float) (weight/ (heightIN*v)*4.88); 

     float total= Math.round(bmi); 



     return total; 
     } 


      private String interpretBMI(float bmiValue) { 

      if (bmiValue < 16) { 
      return "Severely underweight"; 
      } else if (bmiValue < 18.5) { 

      return "Underweight"; 
     } else if (bmiValue < 25) { 

      return "Normal"; 
     } else if (bmiValue < 30) { 

     return "Overweight"; 
     } else { 
      return "Obese"; 


     } 


     } 


     @Override 
     public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     } 

     @Override 
      public void onDestroy() { 
     super.onDestroy(); 

      } 

      @Override 
       public void onDetach() { 
      super.onDetach(); 
       } 
+0

Вы уверены, что используете правильную формулу 'float bmi = (float) (weight/(heightIN * v) * 4.88);' – vcp

+0

Я считаю, что это правильно, я могу ошибаться, как я сказал, что моя математика сосет. Я попытался что-то для чего-то – user6079154

ответ

2

Вы не используете той же формулы. Попробуйте это:

float bmi = weight * 703f/(float)Math.pow(heightIN+12f*v,2); 

Формула выше, можно найти here.

Надеюсь, это поможет.

+0

ya man, который решил его снова поблагодарить за то, что уделил время и помог мне – user6079154

+0

Спасибо также за ссылку сейчас имеет смысл спасибо – user6079154

+0

Мое удовольствие. Удачи с вашим приложением! – joel314

 Смежные вопросы

  • Нет связанных вопросов^_^