Java 尝试计算体重指数,但使用Math.round()后得到0.0的答案
所以我试着用下面的方法计算我的体重指数Java 尝试计算体重指数,但使用Math.round()后得到0.0的答案,java,Java,所以我试着用下面的方法计算我的体重指数 double bmi = weight / ((height * 100) * (height * 100)); bmi = Math.round(bmi * 100.0) / 100.0; 从第一行我得到的答案如下: 2.3457310760477412E-7 这就是为什么我想把它四舍五入到一到两位小数。但这导致bmi为0.0 我还尝试了同样返回0的decimalformat。我做错了什么 编辑-解决方案 问题是我的公式!厘米应该除以10,而不是乘以1
double bmi = weight / ((height * 100) * (height * 100));
bmi = Math.round(bmi * 100.0) / 100.0;
从第一行我得到的答案如下:
2.3457310760477412E-7
这就是为什么我想把它四舍五入到一到两位小数。但这导致bmi为0.0
我还尝试了同样返回0的decimalformat。我做错了什么
编辑-解决方案
问题是我的公式!厘米应该除以10,而不是乘以10!
谢谢
//安德烈你从第一行得到的数字,
2.3457310760477412E-7
已经有点小了。它大致等于2.345/10000000
或0.000000 23457
。这非常接近于零<代码>数学按预期工作,将数字四舍五入到最接近的整数-0
错误要么在输入变量中,要么在您使用的公式中。也许你的身高是厘米而不是米
double weight = 89.0;
double height = 169.0;
double bmi = (weight / ((height * height) / 100)) * 100;
为了澄清,体重和身高是公制的(KG/CM)-您需要将身高(CM)转换为米(因此除以100),然后将输出乘以100得到BMI 2.3457310760477412E-7四舍五入到2个小数点为0.00。没有科学符号的2.3457310760477412E-7是0.00000023457…谢谢Goat先生,这让我找到了问题所在。应为双倍bmi=体重/((身高/100)*(身高/100));这只是我的公式!