繁体   English   中英

在cout C ++中输出double

[英]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

您的向量包含doubleint吗?

看起来它包含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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM