Български English

Целочислено деление дава 0

Проблем при целочислено деление

Лесно може да се затрудните с това, ако сега започвате да се занимавате със C++ и Qt:

  1. int a = 2;
  2. int b = 4;
  3. double c = a / b;
  4. qDebug() << c; // резултатът е 0

Вместо желания резултат 0.5 се получава 0.

Решението

Желаният отговор може да бъде постигнат чред следните фрагтменти от програмен код:

  • Чрез С метод за преобразуване на типове
    1. double c = (double) a / b;
    2. qDebug() << c; // резултатът е 0.5
  • Чрез static_cast

static_cast е C++ оператор за преобразуване на типове и най-често се използва за конвертиране на числови типове данни:

  1. double c = static_cast<double>(a) / b;

Categories: