2013-10-10 3 views
1

У меня проблемы с моим калькулятором bmi. Вот подробности:Проблема с моей программой BMI C#?

Напишите программу, которая берет высоту человека и веса в фунтах и ​​возвращает индекс массы тела (ИМТ). ИМТ определяется как вес, выраженный в килограммах, * , деленный на квадрат высоты, выраженный в метрах. *
Один дюйм 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? Неужели мои расчеты ошибочны?

+1

Разве вы не знаете, как отлаживать? Задайте 2 вопроса о простой проблеме всего за несколько минут? http://stackoverflow.com/questions/19286759/how-to-calculate-for-bmi-program –

ответ

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

Спасибо, что я действительно получил его для работы. Хотя мой не был консольным, я понял, основываясь на вашем коде. – Gunnar

2
bmiDecimal = weightDecimal/heightDecimal^2; 

Вы, вероятно, имел в виду

bmiDecimal = weightDecimal/(heightDecimal * heightDecimal); 

^в C# XOR operator.

Редактировать: Если вы не используете метрическую единицу, вам нужно умножить результаты на 703.06957964, см. Wikipedia.

+0

Но мои расчеты выглядят правильно? Я только что протестировал его, я ввел 5 для моего роста и 100 для своего веса, и я получил 700. Это слишком высоко. – Gunnar

+0

высота 5? Это означает, что 5 метров, что делает вас гигантским или 5 дюймов, чтобы вы поместились в моем рюкзаке! (проверьте свои устройства) – BrokenGlass

+0

Не думаю, что я добавил единицы, поскольку я был noobie. Код, который я положил на свой пост, - это то, что я использую. ** Я делаю, где пользователь вводит свой вес в фунтах, и он вычисляет его до килограммов. Я использую метрику ** Любая помощь в том, как это сделать. – Gunnar

1
bmiDecimal = weightDecimal/(heightDecimal * heightDecimal); 

Попробуйте вышеуказанное. ^ является исключающее

Альтернативно

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

Некоторые тестовые значения могут быть 90 кг и 1,80 м

90/(1.80 * 1.80) 

90 кг составляет примерно 200 фунтов и 1,80 м составляет 5,11, если вы не привыкли к метрическая система

0

В .NET Framework также предоставляет Math класса, который имеет Pow метод, который позволяет квадратуры чисел, как это:

Math.Pow(2, 2) 

То есть 2 квадрата, который равен 4.

Ваш код будет:

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

Примечание: Для получения более подробной информации читайте documentation for Math.Pow.

0

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"); 
Смежные вопросы