Почему неправильный результат при выборе checkbox?
Задача: Если checkbox НЕ выбран, то считается weight/height2, если же выбран, тогда будет считаться по формуле для имперских мер: 703*weight/height2.
Только вот почему-то результат для имперской меры отличается от результата метрической, причём разительно.
Вот кусок кода, где происходит вычисление конечного результата
if (imperialBox.Checked == false)
{
MBICalc = weight / (Math.Pow(height, 2));
result.Text = MBICalc.ToString("N4");
}
else
{
MBICalc = weight / 703 * (Math.Pow(height, 2));
result.Text = MBICalc.ToString();
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Немного математики, в условии вы пишете одну формулу, а в коде у вас другая была. Для возведения в квадрат лучше использовать умножение, оно выглядит проще и работает быстрее.
MBICalc = weight / (height * height);
if (imperialBox.Checked)
{
MBICalc *= 703;
}
result.Text = MBICalc.ToString("N4");
Старайтесь избегать повторяющегося кода. Повторяющийся код сложнее отлаживать и исправлять.