-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()は10ベースではなく、eベースの対数を使用しますが、このコードの範囲では結果は同じです。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 に答える