简单的计算结果为0

时间:2017-09-03 21:13:20

标签: c++

我无法计算从其他简单计算得到奇怪结果的次数。在这个简单的程序中,我试图计算从这个numberphile vid(https://www.youtube.com/watch?v=pbXg5EI5t4c)看到的紊乱的可能性,但是接近我的主要结束时我总是得到我的总百分比

src
无论值是什么,

总是导致0。在此先感谢,任何帮助表示赞赏。

我的整个代码:

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

2 个答案:

答案 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;