两个整数的商的类型

时间:2011-09-07 04:05:33

标签: c++ parsing math logic

请考虑以下事项:

int num = 5;
double total = num / 2;

num / 2的商不是double是否正确,因为您需要将int解析为double

1 个答案:

答案 0 :(得分:9)

技术答案是/运算符在给出两个整数时产生一个int。此计算与其对double变量的赋值无关。

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

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

double total = num / 2.0;

double total = (double)num / 2;

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