2016-02-03 165 views
-1

我想实现这个公式在我的应用程序:Math.log10没有显示正确结果

Body Fat (men) = 495/(1.29579 - .35004 * log10(Waist - Neck) + 0.22100 * log10(Height)) - 450 

这样的:

rezultat = (495/(1.29579 - .35004 * (Math.log10(trecePolje - petoPolje)) + 0.22100 * (Math.log10(drugoPolje/2.54))) - 450); 
中的Java文件trecePolje,drugoPolje和trecePolje

被初始化:

double drugoPolje = Double.parseDouble(editVisina.getText().toString()); 

double trecePolje = Double.parseDouble(editStruk.getText().toString()); 

double petoPolje = Double.parseDouble(editVrat.getText().toString()); 

与drugoPolje 190的值,trecePolje 80和30 petoPolje在seted的EditText我的应用中它输出-272.96 它应该输出16.8

任何想法有什么不对?

下面是计算器:http://bmi-calories.com/body-fat-percentage-calculator.html 确保切换到METRIC单位! 下面你可以看到男士原配方,没有错别字。

在该网站上我用100重量,190的高度,80为腰部,90臀部,30 neckk和18年龄计算。所有这些都以厘米为单位,因为它是公制的。 它显示了16.8的结果

现在我在我的应用程序中做同样的事情,在trecePolje同样测量的情况下,petoPolje是nech,drugoPolje是高度。 而结果并不是很接近。结果只是不好的!

+0

当我代替我得到-56.2高度= 190/2.54,腰围= 80/2.54,头颈= 30/2.54代入公式。你确定你正确地复制了公式吗?为什么你认为这些值的正确结果是16.8?你可以在原始背景(学术论文或其他)中给出与公式相关的链接,或者如果它在一本书中,为该页面拍照并张贴它? –

+0

所有更新的原始文章! – DaxHR

+0

您仍然将“高度”转换为英寸,但不会转换“腰围”。 – Teepeemm

回答

1

OK,得到的答案是这样的: 需要整个公式为公制单位,而不仅仅是高度,腰部和颈部的大小进行调整。

这是修改的公式:

Male Metric Body Fat % = 495/(1.0324-0.19077(log(waist-neck))+0.15456(log(height)))-450 
3

你在该式中日志10具有3个值(X + Y-Z)。在代码中它有2(x-z)。

此外,在1个值(高度),你正在做的转化-1>。你还需要其他人吗?

第三个问题:在公式中你有.221 * LOG10(高),在代码中你有.221 +日志10(高)。

+0

对不起,我复制了错误的公式。现在在第一篇文章中编辑 – DaxHR

+0

好的,那么问题1可以忽略。其他2仍然是问题 –

+0

第三个问题解决了,不敢相信我做了这样一个愚蠢的错误.. 现在我越来越-6.14 要将其转换为英寸,我只需要将它除以2.54? – DaxHR