2011-10-25 59 views
0

所以我試圖用下面的方法來計算我的bmi。試圖計算BMI但使用Math.round()後得到0.0答案()

double bmi = weight/((height * 100) * (height * 100)); 
bmi = Math.round(bmi * 100.0)/100.0; 

從第一行我得到的是這樣一個答案:

2.3457310760477412E-7

這就是爲什麼我想這一輪以一個或兩個小數。但是這導致bmi代替0.0。

我也試過十進制格式,它也返回0.我做錯了什麼?

編輯 - 解決方案

問題是我的公式!釐米應該除以10不能相乘! 謝謝!

//安德烈

+1

2.3457310760477412E-7四捨五入至小數點後兩位爲0.00。 2.3457310760477412E-7沒有科學計數法是0.00000023457 ... – orangegoat

+0

謝謝先生,這讓我發現問題。 應該是雙bmi =重量/((身高/ 100)*(身高/ 100)); 這只是我的公式! –

回答

2

您從第一行獲得的數字,2.3457310760477412E-7已經有點小。它大致等於2.345/100000000.00000023457。這非常接近於零。 Math按預期工作,將數字四捨五入爲最接近的整數 - 0

錯誤在輸入變量中或您正在使用的公式中。也許你的身高是以釐米爲單位而不是米?

0
double weight = 89.0; 
double height = 169.0; 
double bmi = (weight/((height * height)/100)) * 100; 

爲了澄清,體重和身高是公制(公斤/平方釐米) - 你需要的高度轉換成CM爲米(這樣你就除以100),則輸出100相乘,得出BMI。