我的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?我的计算错了吗?
答案 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");