算术问题(double = int / int)

时间:2015-05-20 16:43:51

标签: c++

int passed(1);
int STUDENTNO(3);

double passRate = (passed / STUDENTNO);

在单步执行时,passRate的值在上面的示例中显示为0.00。如何将其正确显示为0.33?

1 个答案:

答案 0 :(得分:7)

您需要右侧的一个或两个变量为double

double passRate = double(passed) / double(STUDENTNO);

否则,正如所写,操作将以int执行,然后在分配回double之前,结果将隐式转换为passRate。到那时已经太晚了,已经进行了整数除法。

或者,如果您的变量是double,那么该部门就可以正常工作。

double passed = 1.0;
double STUDENTNO = 3.0;
double passRate = passed / STUDENTNO;