我的配方有什么问题?

时间:2015-04-27 12:28:22

标签: java algorithm

我正在制作一个从下面的算法中返回体脂肪成分的函数:

495/(1.0324-0.19077(LOG(waist-neck))+0.15456(LOG(height)))-450 // for men

495/(1.29579-0.35004(LOG(waist+hip-neck))+0.22100(LOG(height)))-450 // for women

我将其转换为java语言如下:

495/((1.0324f-(0.19077f*(Math.log(_waist-_neck)))+0.15456f*(Math.log(_height))))-450 // for men

,值为:

_height = 70.86f; // 180cm & 70in
_waist = 35.43f; // 90cm & 35in
_neck = 19.68f; // 50cm & 19in
// values are converted from centimeter

以我的方式,它返回 -25.125 但是在已经使用此算法的http://www.calculator.net/body-fat-calculator.html网站中(请参阅下面的转换器),我将这些值返回 10.3

我错了什么?我的嵌套公式中有什么东西丢失吗?

1 个答案:

答案 0 :(得分:4)

公式要求输入以厘米为单位,而不是英寸,并使用以10为底的对数:

@Test
public void formula() throws Exception
{
    float _height = 180;
    float _waist = 90;
    float _neck = 50;
    double fat = 495/(1.0324f-(0.19077f*(Math.log10(_waist-_neck)))+0.15456f*(Math.log10(_height)))-450;
    System.out.println(fat);
}

输出

  

10.31526981020346