C++ 算术问题(double=int/int)

C++ 算术问题(double=int/int),c++,C++,在上例中,单步执行时,passRate的值显示为0.00。如何使其正确显示为0.33?您需要将右侧的一个或两个变量设置为double int passed(1); int STUDENTNO(3); double passRate = (passed / STUDENTNO); 否则,如前所述,操作将以int的形式执行,然后结果将隐式转换为double,然后将赋值返回到passRate。到那时已经太晚了,整数除法已经发生了 或者,如果你的变量是double,那么除法就可以很好地工作 doub

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

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

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

double passRate = (passed / STUDENTNO);
否则,如前所述,操作将以
int
的形式执行,然后结果将隐式转换为
double
,然后将赋值返回到
passRate
。到那时已经太晚了,整数除法已经发生了

或者,如果你的变量是
double
,那么除法就可以很好地工作

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