我无法计算从其他简单计算得到奇怪结果的次数。在这个简单的程序中,我试图计算从这个numberphile vid(https://www.youtube.com/watch?v=pbXg5EI5t4c)看到的紊乱的可能性,但是接近我的主要结束时我总是得到我的总百分比
src
无论值是什么,总是导致0。在此先感谢,任何帮助表示赞赏。
我的整个代码:
<< "total: " << static_cast<double>(matches / (matches + mismatch) * 100) << endl;
答案 0 :(得分:1)
在此声明中,{<1}}在计算完成后应用。
static_cast
那么实际所做的是在static_cast<double>(matches / (matches + mismatch) * 100)
进行计算,然后转换为int
,而你得到的是double
,因为结果是整数运算为零。
要修复,请手动将至少一个值投射到0.0
:
double
答案 1 :(得分:-1)
整数除法就是这样。为了防止它,显式或隐式地转换值,例如
<< "total: " << (100.0 * matches / (matches + mismatch)) << endl;