麻烦我的BMI程序C#?

时间:2013-10-10 02:56:45

标签: c#

我的bmi计算器出现问题。 以下是详细信息:

写一个程序,取一个人的身高和 以磅为单位的体重并返回体重指数(BMI)。 BMI定义为重量,以千克表示, * 除以以米为单位的高度的平方。 *
一英寸是0.0254米,一磅是 0.454公斤。

这是一个Windows窗体应用程序btw。

当我尝试使用^来平衡高度时,它会给我一个错误:运算符'^'...

这是我的代码:

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?我的计算错了吗?

5 个答案:

答案 0 :(得分:2)

bmiDecimal = weightDecimal / heightDecimal ^ 2;

你可能意味着

bmiDecimal = weightDecimal / (heightDecimal  * heightDecimal);

^是C#中的XOR operator

编辑: 如果您不使用公制单位,则必须将结果乘以703.06957964,请参阅Wikipedia

答案 1 :(得分:1)

bmiDecimal = weightDecimal / (heightDecimal * heightDecimal);

尝试以上方法。 ^是xor

可选地

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

一些测试值可以是90千克和1.80米

90 / (1.80 * 1.80)

如果您不习惯公制系统,则90公斤约为200磅,1.80米为5.11

答案 2 :(得分: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();

答案 3 :(得分:0)

.NET Framework还提供了一个Math类,它具有Pow方法,允许对这些数字求平方:

Math.Pow(2, 2)

这是2平方,等于4。

您的代码将是:

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

注意:有关详细信息,请阅读documentation for Math.Pow

答案 4 :(得分:0)

Weight = Convert.ToDecimal(txtWeight.Text);                 高度= Convert.ToDecimal(txtHeight.Text);

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

            txtMassIndex.Text = Convert.ToString(Math.Round(BodyMassIndex, 4) + " lbs/ Inch Square");