У меня проблема с моим консольным приложением C++, когда я попытался вывести double
который вычисляет из Vector int it show me 0
for (int i = 0; i < max_streak_length; i++)
{
cout<< "data win streak of " << i << " acheived : " << gamesData[i];
cout<< " Propallty \t "<< gamesData[i]/(gamesData[0] + gamesData[1])<<endl;
}
вывод
data win streak of 0 acheived : 6 Propallty 0
data win streak of 1 acheived : 5 Propallty 0
data win streak of 2 acheived : 2 Propallty 0
data win streak of 3 acheived : 0 Propallty 0
data win streak of 4 acheived : 0 Propallty 0
data win streak of 5 acheived : 1 Propallty 0
Ваш вектор содержит double
или int
s?
Похоже, что он содержит int
и если это так, вам нужно сделать двойным:
static_cast<double>(gamesData[i])/(gamesData[0] + gamesData[1])
Когда вы выполняете вычисления с типом int
, вы всегда получите результат типа int
.
Я думаю, что ваш тип элемента в gamesData[i]
является int
. Если вы хотите получить результат 3/2
, результат равен 1, так как результат int/int
является int
. Если вы хотите получить двойные данные, вам нужно использовать double(gamesData[i])/(gamesData[0] + gamesData[1])
. Для типа результата зависит от типа числителя в такой ситуации.