2016-04-07 6 views
-1

Problem: Meine Berechnungen sind aus, wenn ich die Ergebnisse meiner App mit der bmi-Website verglich. Vielen Dank im Voraus, auch meine Mathe ist wirklich schlecht, also entschuldige ich mich im Voraus.Meine Berechnungen sind beim Erstellen eines BMI-Kalkulators deaktiviert

Hier sind die Ergebnisse, dass meine App gibt mir:

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

Hier sind die der BMI Webseite basiert Ergebnisse 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

Sind Sie sicher, dass Sie korrekte Formel 'float bmi = (float) verwenden (Gewicht/(heightIN * v) * 4.88);' – vcp

+0

Ich glaube, dass es richtig ist, kann ich falsch liegen, wie ich meine Mathematik saugt. Ich habe versucht, was zählt für etwas – user6079154

Antwort

2

Sie verwenden nicht die gleiche Formel. Versuchen Sie folgendes:

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

Die obige Formel here gefunden werden kann.

Ich hoffe es hilft.

+0

ya Mann, dass es gelöst, noch einmal danke für die Zeit und hilft mir aus – user6079154

+0

Danke auch für den Link jetzt macht es Sinn Dank – user6079154

+0

Mein Vergnügen. Viel Glück mit deiner App! – joel314

Verwandte Themen