Результат расчета Всегда 0 - PullRequest
3 голосов
/ 21 мая 2019

Я пытаюсь написать очень простую программу для расчета силы никотина в жидкости. В основном это (сила / nicStrengh) * количество. И это всегда выходит как 0.

    private void lblCalculate_Click(object sender, EventArgs e)
    {
        int strengh = Convert.ToInt32(txtBoxDesiredStrengh.Text);
        int nicStrengh = Convert.ToInt32(txtBoxNicStrengh.Text);
        int amount = Convert.ToInt32(txtBoxAmount.Text);

        int result = strengh / nicStrengh * amount;

        string resultStr = result.ToString();

        label1.Text = resultStr;
    }

1 Ответ

2 голосов
/ 21 мая 2019

Когда вы делите целое число на целое число результат также равен целое число ; например,

 5 / 10 == 0       // not 0.5 - integer division
 5.0 / 10.0 == 0.5 // floating point division

В вашем случае strengh < amount, поэтому strengh / amount == 0. Если вы хотите, чтобы result был int (скажем, 3), укажите его как

  int result = strengh * amount / nicStrengh;

если вы хотите double result (т.е. значение с плавающей запятой * значение 1020 *, скажем 3.15), дайте системе знать, что вам нужна арифметика с плавающей запятой:

  double result = (double)strengh / nicStrengh * amount;
...