This question already has answers here:
Why does division result in zero instead of a decimal?

(5个答案)


7年前关闭。




我正在尝试做一个简单的计算:((45/100)-(20 + 50)/ 200)*(10 + 5)

我期望答案是1.5,但是当程序被编译时,它显示为0。

有人可以帮我解决这个问题吗
#include <iostream>
using namespace std;

int main()
{
   float   CivIndex = ( (45/100) -  (20+50)/200 )
                  *(10+5);

   cout<<CivIndex; // expect 1.5 but getting 0
}

最佳答案

整数除法!

如果将(45 / 100)评估为整数,则等于0,而不是您一直希望的0.45。

使分子或分母为浮点数以获得预期的结果:
(45.0 / 100)

关于c++ - 计算返回零而不是预期结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19230144/

10-15 03:04