[問題] 新手寫BMI遇到計算的問題

看板java作者 (...)時間13年前 (2013/01/23 00:52), 編輯推噓3(305)
留言8則, 4人參與, 最新討論串1/1
import java.util.Scanner; public class BmiTestDive { public static void main (String[] args) { Scanner scanner = new Scanner(System.in); Bmi one = new Bmi(); System.out.println("Your Height"); one.Height = scanner.nextInt()/100; System.out.println("Your Weight"); one.Weight = scanner.nextInt(); one.Bmi = one.Weight / ( one.Height * one.Height ); System.out.println("Your Bmi is " + one.Bmi); one.Analysis(); } } 以上是小弟很弱的程式碼,以身高輸入173 體重輸入 53...但計算出來都呈現53 計算式也沒有錯啊,檢查了好多次,不知道有大大可以為我解答這問題嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.170.38

01/23 01:03, , 1F
Int是整數,你用整數除出來Height都是1
01/23 01:03, 1F

01/23 01:04, , 2F
計算式也有錯,括號括這樣會先Height除Height就變1了
01/23 01:04, 2F

01/23 01:18, , 3F
Height = 1 1*1還是1
01/23 01:18, 3F

01/23 01:18, , 4F
用浮點數計算後用decimalformat轉成看你要到小數幾位
01/23 01:18, 4F

01/23 01:20, , 5F
你用整數去除 沒有指定結果的話 預設是商數
01/23 01:20, 5F
感謝以上大大們的回答,小弟不才....研究了很久才知道改一下輸入那邊即可 import java.util.Scanner; public class BmiTestDive { public static void main (String[] args) { Scanner scanner = new Scanner(System.in); Bmi one = new Bmi(); System.out.println("Your Height"); one.Height = scanner.nextFloat()/100; System.out.println("Your Weight"); one.Weight = scanner.nextFloat(); one.Bmi = one.Weight / ((one.Height * one.Height)); System.out.println("Your Bmi is " + one.Bmi); one.Analysis(); } } ※ 編輯: WeiMyWoW 來自: 114.36.170.38 (01/23 02:57)

03/11 22:32, , 6F
好特別的寫法,先new了一個one的物件,產生自Bmi類別,
03/11 22:32, 6F

03/11 22:34, , 7F
但是實際上在程式段裡卻看不到class Bmi,還是樓主只拿
03/11 22:34, 7F

03/11 22:35, , 8F
有main的出來討論?
03/11 22:35, 8F
文章代碼(AID): #1G_iFCOQ (java)