C++ 简单的计算结果为0

C++ 简单的计算结果为0,c++,C++,我无法计算从其他简单计算中得到奇怪结果的次数。在这个简单的程序中,我试图计算从这个数字文件vid()中看到的精神错乱的几率,但是在我的主要课程接近尾声时,我一直得到我的总百分比 << "total: " << static_cast<double>(matches / (matches + mismatch) * 100) << endl; 整数除法就是这样做的。为了防止它,可以显式或隐式地强制转换该值,例如 << "total: "

我无法计算从其他简单计算中得到奇怪结果的次数。在这个简单的程序中,我试图计算从这个数字文件vid()中看到的精神错乱的几率,但是在我的主要课程接近尾声时,我一直得到我的总百分比

<< "total: " << static_cast<double>(matches / (matches + mismatch) * 100) << endl;

整数除法就是这样做的。为了防止它,可以显式或隐式地强制转换该值,例如

<< "total: " << (100.0 * matches / (matches + mismatch)) << endl;

在此语句中,在计算完成后,应用
静态投影

static_cast<double>(matches / (matches + mismatch) * 100)

匹配/(匹配+不匹配)
是整数除法,因此结果被截断为整数。要使除数成为浮点数,至少需要一个操作数是浮点数。最简单的方法是<代码> Fo/Bouter(Bar)< /C>。此外,如果使用<代码> C++ 11 或任何其他版本特定的C++标签,则应始终包含<代码> C++ >代码>本身。我为你编辑了这篇文章。而且,这里已经回答了这个问题:迟早,你应该看看你能提供什么。
static_cast<double>(matches / (matches + mismatch) * 100)
(1.0 * matches / (matches + mismatch) * 100)
 ^^^
(double(matches) / (matches + mismatch) * 100)
 ^^^^^^^       ^