#잘못된 파라미터
## CODE <a class='btn btn-default' href='/codes/5299'>Link</a>
```
public class WhatIsWrong {
public static void main(String[] args) {
int a = square((int)3.0);
int b = (int)cube(2);
System.out.printf("a = %d, b = %d\n", a, b);
}
public static int square(int n) {
return n * n;
}
public static double cube(double n) {
return n * n * n;
}
}
```
## INPUT
```
```
## OUPUT
```
a = 9, b = 8
```
cube(2) 를 (int)cube(2) 로 바꿔서
public static double cube(double n) {
return n * n * n;
}
double n 에 대입했는데 어떻게 값이 8.0이 아니라 8이에요?
그리고 int를 double에 대입할 수 있나요?
sehongpark님의 답변
## 답변
```
int b = (int) cube(2);
```
### 코드의 실행 흐름
위 코드의 실행 흐름은 다음과 같습니다.
1) cube(2) 호출
2) 전달 값이 파라미터로 대입
```
// int는 double로 자동변환 되어 대입됩니다.
double n = 2; // 2.0
```
3) 메소드 수행 후 리턴값 반환
```
return n * n * n; // 8.0
```
4) 반환값을 int로 캐스팅 후 대입
```
int b = (int) 8.0;
```