算术运算期间的C ++类型转换

时间:2015-02-12 21:40:47

标签: c++ c++11 math types

我是使用C ++ Primer Plus,第6版编程和学习C ++的新手。作者:Stephen Prata。

在第3章中,它指出

  

"当一个操作涉及两种类型时,较小的转换为较大的类型。"

它提供的示例来自之前的商家信息,其中9.0/5double除以int)会产生1.8double)的值。它指出5在进行除法之前会转换为double。因此,double除以double将导致值double。这是有道理的。

但是,如果是这种情况,为什么10.0 / 5double除以int)会产生2(int)。答案不应该是2.0(如果5转换为double,然后分为10.0)?

2 个答案:

答案 0 :(得分:1)

使用.0打印双精度表时,输出只是整数部分。您可以通过编译此代码来测试它:

double num = 2.0;
std::cout << num;

输出将是:2

答案 1 :(得分:0)

  

&#34;当一个操作涉及两种类型时,较小的转换为较大的类型。&#34;

本书的引用并不是指操作中使用的类型的,而是大小