请考虑以下事项:
int num = 5;
double total = num / 2;
说num / 2
的商不是double
是否正确,因为您需要将int
解析为double
?
答案 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 ++运算符语义之一。希望这是有道理的。