尝试计算BMI,但在使用Math.round()后得到0.0的答案

时间:2011-10-25 17:05:26

标签: java

所以我正在尝试使用以下方法计算我的bmi。

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

从第一行开始,我得到一个如下答案:

2.3457310760477412E-7

这就是为什么我想把它舍入到一个或两个小数。但这导致bmi为0.0。

我也尝试过decimalformat,它也返回0.我做错了什么?

编辑 - 解决方案

问题是我的公式!厘米应除以10而不是乘以! 谢谢!

//安德烈

2 个答案:

答案 0 :(得分:2)

您从第一行2.3457310760477412E-7获得的数字已经很小了。它大致等于2.345/100000000.00000023457。这非常接近于零。 Math按预期工作,将数字四舍五入为最接近的整数 - 0

错误在输入变量中或在您使用的公式中。也许你的身高是厘米而不是米?

答案 1 :(得分:0)

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

要澄清,重量和高度是公制(KG / CM) - 您需要将CM中的高度转换为米(因此除以100),然后将输出乘以100以得出BMI。