2017-09-12 19 views
2
import java.util.Scanner; 
public class bmi { 
    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 

     float height,heightSquared,BMI; 

     int weight; 

     System.out.println("Your height in meters:"); 

     height = scan.nextFloat(); 

     System.out.println("Your weight in kilograms:"); 

     weight = scan.nextInt(); 

     heightSquared = (height*height); 

     BMI = weight/heightSquared; 

     if (BMI < 18.5) { 
      System.out.println("Your BMI result:"+ BMI + "(UNDER-WEIGHT)"); 
     } 
     else if (BMI > 18.4 && BMI < 24.6) { 
      System.out.println("Your BMI result:"+ BMI + "(NORMAL-WEIGHT)"); 
     } 
     else if (BMI > 24.9 && BMI < 30) { 
      System.out.println("Your BMI result:"+ BMI + "(OVER-WEIGHT)"); 
     } 
     else { 

      System.out.println("Your BMI result:"+ BMI + "(OBESSE)"); 
     } 

    } 
} 

這是我的代碼獲得一個人的身體質量指數(BMI)它可以運行,但我唯一的問題是我如何將答案轉爲2位小數? 例如:如何在此代碼中獲得2位小數的答案?因爲我得到超過2

你的高度在米: 1.70 你在千克體重:你的BMI結果:17.301032(UNDER-WEIGHT)

我想輸出是僅17.30或在2位小數。 我應該改變什麼?

回答

0

試試這個。您可以使用%2f得到小數點後兩位

Your BMI result:"+ String.format("%.2f", BMI) 
+0

感謝它確實工作,但沒有的String.format(「%2F」,BMI)是怎麼做到的? –

+0

@AmbenUchiha該方法被稱爲'format specifier specified'。您可以通過API閱讀以獲得更好的理解。 –

相關問題