int passed(1);
int STUDENTNO(3);
double passRate = (passed / STUDENTNO);
在单步执行时,passRate
的值在上面的示例中显示为0.00
。如何将其正确显示为0.33?
答案 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;