float(x)/ y和x / float(y)之间有区别吗?

时间:2014-09-18 22:11:26

标签: c++ floating-point division

#include <iostream>
 using namespace std ;
  int main ()
  {

     int x,y ;
     x= 7 , y=3 ;
      cout<<float(x) /y << endl ; 

  }

float(x)/yx/float(y)之间的区别是什么?

3 个答案:

答案 0 :(得分:2)

你的问题没有实际意义。

除以两个整数的结果是int(这称为整数除法,如果完全省略float转换,则得到的结果);如果你然后转换为float,你仍然有int结果,尽管是float。划分floatint的结果是float;因此,您

答案 1 :(得分:1)

很少。使用float(x)/y时,值x将首先转换为float,然后转换为double,而y将直接转换为double。使用x/float(y)x将直接转换为双倍,而y将转换为float,然后转换为double。在任何一种情况下,该分部都将以double执行,并且double结果将被打印。

因此,对于您的示例,没有区别,但如果xy更大(大于2 24 ),则该值将略微舍入到如果首次转换为float,则适合float。这会产生(非常)略有不同的结果。

答案 2 :(得分:1)

similar question involving uint8_t and bools in an arithmetic expression

此问题的答案也适用于此处,以及与float相关的以下附加信息。

  

5个表达

     

9许多期望算术运算或枚举操作的二元运算符     类型导致转换......

     

- 否则,如果任一操作数是浮点数,则另一个操作数应转换       漂浮。

在分割之前,两个操作数都转换为float,结果的类型为float