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

Posted

技术标签:

【中文标题】如何确定涉及c ++中除法的算术表达式的数据类型【英文标题】:how to determine data type of arithmetic expressions involving divisions in c++ 【发布时间】:2018-09-23 17:03:47 【问题描述】:

看看下面的节目。

// 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”。

确定使用哪个分区的规则是什么?

【问题讨论】:

这里是C implicit conversions,这里是C++ implicit conversions(参考解释更容易) 【参考方案1】:

具有两个整数操作数的算术运算在整数上下文中进行计算;具有至少一个浮点操作数的算术运算在浮点上下文中进行评估。 (除此之外还有更具体的类型转换规则,但基本思想是,如果其中一个操作数是floatdouble,它会将另一个操作数转换为floatdouble(如果还没有的话) .)

【讨论】:

以上是关于如何确定涉及c ++中除法的算术表达式的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

C语言,我想设置一个变量num,用来存储某个数据(位数在10位以上),但是不确定数据的类型,如何定义num?

C 数据类型

C 数据类型

C 数据类型

C语言数据类型的转换

请问C语言中 如何把double类型的数转化为字符串 char