당신이 어떤 접미사를 사용하지 않기 때문에, 리터럴 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);
그리고 반올림이 발생합니다.
나누기는 결과를 0으로 반올림하고 결과의 절대 값은 두 피연산자의 몫의 절대 값보다 작은 가능한 가장 큰 정수입니다. 두 피연산자가 동일한 부호를 갖는 경우 결과는 0 또는 양수이고 두 피연산자가 반대 부호를 갖는 경우 결과는 0 또는 음수입니다.
다음을 수행하는 경우 :
int x = 13f / 4f;
부동 소수점 나누기 ( /
연산자의 연산자) 때문에 컴파일러 오류가 발생합니다.13f
)는 부동 소수점을 초래하므로 암시 적으로 int로 캐스트 할 수 없으므로 합니다.
나누기가 부동 소수점 나누기가 되려면 결과를 부동 소수점으로 만들어야합니다.
float x = 13 / 4;
여전히 정수를 나눌 것입니다.이 정수는 내재적으로 float로 캐스팅됩니다 3.0
. 결과는입니다 . f
접미사 ( 13f
, 4f
)를 사용하여 피연산자를 float로 명시 적으로 선언합니다 .
integer
분할이 아니기 때문에floating point
분할입니다.