#include <iostream>
using namespace std ;
int main ()
{
int x,y ;
x= 7 , y=3 ;
cout<<float(x) /y << endl ;
}
float(x)/y
和x/float(y)
之间的区别是什么?
答案 0 :(得分:2)
你的问题没有实际意义。
除以两个整数的结果是int
(这称为整数除法,如果完全省略float
转换,则得到的结果);如果你然后转换为float
,你仍然有int
结果,尽管是float
。划分float
和int
的结果是float
;因此,您
答案 1 :(得分:1)
很少。使用float(x)/y
时,值x
将首先转换为float
,然后转换为double
,而y
将直接转换为double
。使用x/float(y)
,x
将直接转换为双倍,而y
将转换为float
,然后转换为double
。在任何一种情况下,该分部都将以double
执行,并且double
结果将被打印。
因此,对于您的示例,没有区别,但如果x
或y
更大(大于2 24 ),则该值将略微舍入到如果首次转换为float
,则适合float
。这会产生(非常)略有不同的结果。
答案 2 :(得分:1)
有similar question involving uint8_t
and bool
s in an arithmetic expression。
此问题的答案也适用于此处,以及与float
相关的以下附加信息。
5个表达
9许多期望算术运算或枚举操作的二元运算符 类型导致转换......
- 否则,如果任一操作数是浮点数,则另一个操作数应转换 漂浮。
在分割之前,两个操作数都转换为float
,结果的类型为float
。