Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试计算体重指数,但使用Math.round()后得到0.0的答案_Java - Fatal编程技术网

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));这只是我的公式!