两个整数的商的类型
考虑以下问题:
int num = 5;
double total = num / 2;
num / 2
的商不是 double
是否正确,因为您需要将 int
解析为 <代码>双?
Consider the following:
int num = 5;
double total = num / 2;
Is it correct to say that the quotient of num / 2
is not a double
because you need to parse the int
to double
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
技术答案是,当给定两个整数时,
/
运算符会生成一个 int。此计算的完成与对 double 变量的赋值无关。实际上,您确实在变量
total
中得到了一个双精度值,但它是2.0,而不是2.5。整数 2 在初始化时被转换为 2.0。如果您想要 2.5,您的选择是:
简而言之,这不是解析问题,而是 C++ 运算符语义之一。希望这是有道理的。
The technical answer is that the
/
operator produces an int when given two ints. This computation is done independent of its assignment to adouble
variable.You actually do get a double value in the variable
total
, but it is 2.0, not 2.5. The integer 2 is cast to 2.0 in the initialization.Your options, if you want 2.5, are:
In short, it is not a parsing issue, but rather one of C++ operator semantics. Hope that made sense.