如何确定c ++中涉及除法的算术表达式的数据类型

时间:2018-09-23 17:03:47

标签: c++ division integer-division expression-evaluation

看看下面的程序。

// Example program
#include <iostream>
#include <string>

int main()
{
  int n=7;  
  std::cout <<"n/2 = "<< n/2 << std::endl;
  std::cout <<"n/3.3 = "<< n/3.3 << std::endl;
}

输出:

n/2 = 3
n/3.3 = 2.12121

在上面的示例中,

  • 表达式“ n / 2”已使用整数除法求值。
  • 表达式“ n / 3.3”已使用实数除法进行了评估。

确定使用哪种划分的规则是什么?

1 个答案:

答案 0 :(得分:2)

具有两个整数操作数的算术运算在整数上下文中求值;在浮点上下文中评估具有至少一个浮点操作数的算术运算。 (除了还有更具体的类型转换规则外,但基本思想是,如果其中一个操作数为floatdouble,它将另一个转换为float或{{1 }}(如果还没有)。