我是使用C ++ Primer Plus,第6版编程和学习C ++的新手。作者:Stephen Prata。
在第3章中,它指出
"当一个操作涉及两种类型时,较小的转换为较大的类型。"
它提供的示例来自之前的商家信息,其中9.0/5
(double
除以int
)会产生1.8
(double
)的值。它指出5
在进行除法之前会转换为double
。因此,double
除以double
将导致值double
。这是有道理的。
但是,如果是这种情况,为什么10.0 / 5
(double
除以int
)会产生2(int
)。答案不应该是2.0
(如果5
转换为double
,然后分为10.0
)?
答案 0 :(得分:1)
使用.0打印双精度表时,输出只是整数部分。您可以通过编译此代码来测试它:
double num = 2.0;
std::cout << num;
输出将是:2
答案 1 :(得分:0)
&#34;当一个操作涉及两种类型时,较小的转换为较大的类型。&#34;
本书的引用并不是指操作中使用的类型的值,而是大小。