我的 BMI 程序 C# 出现问题

本文关键字:问题 BMI 程序 我的 | 更新日期: 2023-09-27 18:34:51

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

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

顺便说一句,这是一个窗口表单应用程序。

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

这是我的代码:

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?我的计算有误吗?

我的 BMI 程序 C# 出现问题

bmiDecimal = weightDecimal / heightDecimal ^ 2;

你可能的意思是

bmiDecimal = weightDecimal / (heightDecimal  * heightDecimal);

^ 是 C# 中的异或运算符。

编辑:如果不使用公制单位,则必须将结果乘以 703.06957964,请参阅维基百科。

bmiDecimal = weightDecimal / (heightDecimal * heightDecimal);

尝试上述操作。 ^是异或

或者

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

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

90 / (1.80 * 1.80)

90 公斤大约是 200 磅,1.80 米是 5.11 如果你不习惯公制

下面是它在控制台应用中的外观:

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

.NET Framework 还提供了具有 Pow 方法的 Math 类,该方法允许对数字进行平方,如下所示:

Math.Pow(2, 2)

即 2 的平方,等于 4。

您的代码将是:

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

注意:有关更多信息,请阅读 Math.Pow 的文档。

weight = Convert.ToDecimal(txtWeight.Text(; Height = Convert.ToDecimal(txtHeight.Text(;

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