Löst Problem! Java. (BMI uppgift) Tidigare krångel med DecimalFormat och fel meddelande!
Hej!
Jag har precis påbörjat en yrkesutbildning till Java systemutvecklare. En av uppgifterna som jag har påbörjat är att jag ska skapa ett program som räknar ut BMI och ger användaren en kommentar kopplad till resultatet. Programmet fungerar, problemet är dock att det blir på tok för många decimaler. Max är två. Jag har valt att använda variabeln "DecimalFornat", tyvärr fungerar det inte. Om jag skriver in "Weight" 18 och "Length" 1.87, blir svaret "Ditt BMI blev 10.8667677..." Perfect BMI".
Dels ger koden fel meddelande, dels blir det för många decimaler... Vad göra?
package bmi;
import java.text.DecimalFormat;
public class Bframe extends javax.swing.JFrame {
//Instansvariabler
double weight, length, bmi;
public Bframe() {
initComponents();
private void RunActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
weight=Double.parseDouble(InputWeight.getText());
length=Double.parseDouble(InputLength.getText());
bmi=weight/(length*length);
//out bmi
DecimalFormat numberFormat;
numberFormat = new DecimalFormat ("#.00");
//numberFormat
outbmi.setText("Ditt BMI blev"+bmi);
if (bmi>=18 && bmi <=24 ){
truth.setText("Perfect BMI!");
}else if(bmi<=17.9){
truth.setText("Your BMI is too low!");
}else if(bmi>=24.1){
truth.setText("Your BMI is too high!");
}
}
Senast redigerat Ändrade av anledningen att mitt problem blev löst!
Jag vet inte hur javas DecimalFormat-klass fungerar, men du använder fel boolesk operator i den första if-satsen. Du hanterar inte heller BMI mellan 17-18 och 24-25.
Fixa din indentering så man kan läsa koden utan ansträngning också.
Du använder väl aldrig din DecimalFormater? Du skapar den men använder den inte till din output.
Prova att köra typ:
String bmiFormatted = numberFormat.format(bmi);
outbmi.setText("Ditt BMI blev"+bmiFormatted);
Nu är jag ingen hejjare på Java, men av din DecimalFormater så ser det ut som att du är intresserad av två decimaler i din bmi-variabel? Vad händer i din avslutande if-sats om bmi blir t.ex. 17.91 eller 24.01?
@NFRS: Svårt så här i början. Suttit länge och vridit och vänt på koden! Tack så otroligt mycket för att du hjälpte mig! Fantastiskt! Nu kan jag gå och lägga mig =)!