변수의 값이 실수 2.0 인것을 모두 고르시오
1. double a = 5/2;
2. int b = 4/2;
3. double c =(int)(5.0)(2.0);
여기서 실수 2.0 인것은 2번은 b=2 인데 정수 2는 실수 2.0으로 자동변환 된다고 배웠습니다
3번은 5.0/2.0 = 2.5 인데 (int) 으로 2인 정수만 캐스팅 하고 표기는 double로 인하여 2.0으로 됩니다.
그래서 답은 2,3 인듯한데 문제를 풀어보니 1,3번이 정답으로 인정이 됩니다. 왜 그럴까요?
혹시 제가 잘못 알고 있나요?
sehongpark님의 답변
## double a = 5 / 2;
해당 수식은 우측의 나누셈부터 시작됩니다.
이를 차례로 나타내면 다음과 같습니다.
```
double a = 2;
double a = 2.0; // 왼쪽 변수가 실수이므로, 정수를 실수로 자동 변환
```
## int b = 4/2;
위 수식 또한 마찬가지로 아래의 순서를 따릅니다.
```
int b = 2; // 우측 값과 좌측 변수가 모두 정수이므로 더 이상 변환되지 않음.
```
## double c = (int) (5.0 / 2.0);
위 수식은 소괄호 안쪽 나눗셈이 먼저 연산되고,
다음 흐름을 따릅니다.
```
double c = (int) (2.5);
double c = 2; // 2.5를 정수로 해석(캐스팅)하여, 소수점 이하가 버려짐
double c = 2.0; // 왼쪽 변수가 실수(double)형이므로, 2가 2.0으로 자동변환 됨.
```
tkdrl9900님의 답변
감사합니다.