由于您不使用任何后缀,因此将文字13
和4
解释为整数:
手册:
如果文字没有后缀,它具有第一这些类型的,其中它的值可以表示的:int
,uint
,long
,ulong
。
因此,由于您声明13
为整数,因此将执行整数除法:
手册:
对于x / y形式的操作,将应用二进制运算符重载解析来选择特定的运算符实现。操作数将转换为所选运算符的参数类型,结果的类型为运算符的返回类型。
预定义的除法运算符在下面列出。运算符都计算x和y的商。
整数除法:
int operator /(int x, int y);
uint operator /(uint x, uint y);
long operator /(long x, long y);
ulong operator /(ulong x, ulong y);
因此四舍五入发生:
除法将结果舍入为零,并且结果的绝对值是最大可能的整数,该整数小于两个操作数的商的绝对值。当两个操作数具有相同的符号时,结果为零或正;而当两个操作数具有相反的符号时,结果为零或负。
如果您执行以下操作:
int x = 13f / 4f;
您会收到编译器错误,因为浮点除法(的/
运算符13f
)会导致产生浮点数,而该浮点数不能隐式转换为int。
如果希望除法是浮点除法,则必须将结果设为浮点数:
float x = 13 / 4;
请注意,您仍将除以整数,该整数将隐式转换为float:结果将为3.0
。使用f
后缀(13f
,4f
)将操作数显式声明为float 。
integer
师而不是floating point
师