1

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

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

顺便说一句,这是一个 Windows 窗体应用程序。

好吧,当我尝试使用 ^ 对高度进行平方时,它给了我一个错误:运算符 '^'...

这是我的代码:

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);

试试上面的。^是异或

或者

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

一些测试值可能是 90 kg 和 1.80 m

90 / (1.80 * 1.80)

如果您不习惯公制系统,90 kg 大约是 200 lbs,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 还提供了一个Math具有Pow方法的类,该方法允许对数字进行平方,如下所示:

Math.Pow(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 回答