[英]output double in cout C++
当我尝试输出从Vector int计算得出的double
值时,我的C ++控制台应用程序出现了问题,它向我显示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
吗?
看起来它包含int
,如果是这种情况,则需要强制转换为double:
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])
。 对于这种情况,结果的类型取决于分子的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.