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