-3

以下是公式

脂肪百分比 = 495 / (1.0324 - 0.19077 x (LOG10(腰 - 颈)) + 0.15456 x (LOG10(身高))) - 450

以下是我的代码

import java.math.*;

public class Position
{
    static double waist=66,neck=30,height=150;

    public static void main(String[]args)
    {
        double fat = 495 / ( (1.0324 - 0.19077)* (Math.log(waist - neck)/Math.log(10)) + (0.15456) *  (Math.log(height)/Math.log(10))) - 450;

        System.out.println(fat);
    }
}

我得到的答案是不正确的。它应该是 11.8%(使用以下http://lowcarbdiets.about.com/library/blbodyfatcalculator.htm

我相信我用对数做错了一些事情。请帮助我得到正确的答案。

4

3 回答 3

6

您已将其错误地写入代码。尝试:

import java.math.*;

public class Position
{
    static double waist=66,neck=30,height=150;

    public static void main(String[]args)
    {
        double fat = 495 / ( 1.0324
            - (0.19077 * (Math.log(waist - neck)/Math.log(10)))
            + (0.15456) * (Math.log(height)/Math.log(10))
            ) - 450;

        System.out.println(fat);
    }
}

不同之处在于这没有1.0324 - 0.19077- 原始公式也没有,所以你放错了括号。

正如@a_horse_with_no_name 所指出的,Math.log() 将使用基于 e 的对数,而不是基于 10 的对数,但在此代码的范围内,结果是相同的。要使用基于 10 的,您将使用 Math.log10()。

于 2012-12-28T07:35:23.490 回答
2

对数计算是正确的,但您放错了一些括号。

double fat = 495 / ( 1.0324 - 0.19077* (Math.log(waist - neck)/Math.log(10)) + (0.15456) *  (Math.log(height)/Math.log(10))) - 450
于 2012-12-28T07:35:37.090 回答
1
495 / (1.0324 - 0.19077 x

还有这个

495 / ( (1.0324 - 0.19077)*

不匹配

于 2012-12-28T07:35:51.787 回答