1

bmi 計算機に問題があります。詳細は次のとおりです。

人の身長と体重をポンド単位で取得し、ボディ マス インデックス (BMI) を返すプログラムを作成します。BMI は、キログラムで表される体重をメートルで表される身長の 2 乗で割った*として定義されます。*
1 インチは 0.0254 メートル、1 ポンドは 0.454 キログラムです。

これはWindowsフォームアプリです。

^ を使用して高さを 2 乗しようとすると、エラーが発生します: 演算子 '^'...

これが私のコードです:

private void button1_Click(object sender, EventArgs e)
{
    //Declare variables.
    decimal heightDecimal ;
    decimal weightDecimal;
    decimal bmiDecimal;
    decimal resultDecimal;

    //Get user input.
    heightDecimal = Decimal.Parse(txtHeight.Text);
    weightDecimal = Decimal.Parse(txtWeight.Text);

    //Calculations.
    weightDecimal = (Decimal)0.454;
    heightDecimal = (Decimal)0.0254;
    bmiDecimal = weightDecimal / heightDecimal ^ 2;




    //Display.
    lblBMI.Text = bmiDecimal.ToString();
}

私は計算を理解しようとしています。私は混乱しています。誰でも私を助けてもらえますか?ありがとう。

誰もが言ったことをテストしました。変な数字が出てきました。私はそれを始めて、身長に5、体重に100(ランダム)を入れたところ、700になりましたか?私の計算は間違っていますか?

4

5 に答える 5

2
bmiDecimal = weightDecimal / heightDecimal ^ 2;

あなたはおそらく意味した

bmiDecimal = weightDecimal / (heightDecimal  * heightDecimal);

^ はC#のXOR 演算子です。

編集: メートル単位を使用しない場合は、結果に 703.06957964 を掛ける必要があります。Wikipedia を参照してください

于 2013-10-10T02:58:26.063 に答える
1
bmiDecimal = weightDecimal / (heightDecimal * heightDecimal);

上記を試してください。^xorです

あるいは

bmiDecimal = weightDecimal / Math.Pow(heightDecimal, 2)

一部のテスト値は、90 kg および 1.80 m である可能性があります

90 / (1.80 * 1.80)

メートル法に慣れていない場合、90 kg は約 200 ポンド、1.80 m は 5.11 です。

于 2013-10-10T02:59:22.623 に答える
0

コンソール アプリでは次のようになります。

        decimal feetDecimal;
        decimal inchesDecimal;
        decimal weightDecimal;
        decimal bmiDecimal;
        decimal resultDecimal;


        //Get user input.
        Console.WriteLine("Enter feet:");
        feetDecimal = Decimal.Parse(Console.ReadLine());
        Console.WriteLine("Enter inches:");
        inchesDecimal = Decimal.Parse(Console.ReadLine());
        Console.WriteLine("Enter weight in pounds:");
        weightDecimal = Decimal.Parse(Console.ReadLine());

        //Calculations. 
        inchesDecimal += feetDecimal * 12;
        decimal height = inchesDecimal * (decimal)0.0254;
        decimal weight = weightDecimal * (decimal)0.453592;
        bmiDecimal = weight / (height * height);
        //Display.
        Console.WriteLine(bmiDecimal.ToString());
        Console.ReadLine();
于 2013-10-10T03:00:10.857 に答える
0

.NET Framework には、次のような数値の 2 乗を可能にするメソッドMathを持つクラスも用意されています。Pow

Math.Pow(2, 2)

2 の 2 乗、つまり 4 です。

あなたのコードは次のようになります。

bmiDecimal = weightDecimal / Math.Pow(heightDecimal, 2);

注: 詳細については、 Math.Pow のドキュメントを参照してください

于 2013-10-10T03:00:26.463 に答える
0

重量 = Convert.ToDecimal(txtWeight.Text); 高さ = Convert.ToDecimal(txtHeight.Text);

            BodyMassIndex = (Weight * 703) / (Height * Height);

            txtMassIndex.Text = Convert.ToString(Math.Round(BodyMassIndex, 4) + " lbs/ Inch Square");
于 2013-10-10T09:39:33.307 に答える