两个整数的商的类型

How*_*Gee 1 c++ math logic parsing

考虑以下:

int num = 5;
double total = num / 2;
Run Code Online (Sandbox Code Playgroud)

它是正确的说的商num / 2是不是double因为你需要解析intdouble

Ray*_*oal 9

技术答案是/操作符在给出两个整数时产生一个int.该计算独立于其对double变量的赋值而完成.

事实上,你得到变量a double值total,但它是2.0,而不是2.5.在初始化中,整数2被强制转换为2.0.

如果你想要2.5,你的选择是:

double total = num / 2.0;

double total = (double)num / 2;
Run Code Online (Sandbox Code Playgroud)

简而言之,它不是解析问题,而是C++运算符语义之一.希望有道理.