# 잘못된 파라미터
잘못된 메소드를 수정할때 위의 것은 int a = square ((int) 3.0); 으로 바꿔준것 처럼
밑의 것도 int b = cube((int) 2); 해주니 에러가 납니다. 왜 int b = cube((int) 2); 가 아닌 int b = (int) cube(2); 인가요?
## CODE <a class='btn btn-default' href='/codes/11428'>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
```
sehongpark님의 답변
# A. double 값을 int로 직접 대입할 수 없습니다.
cube() 메소드의 반환 값은 double 입니다.
```
public static double cube(double n) {
return n * n * n;
}
```
이를 int 변수로 대입할 수 없습니다. 타입 불일치의 문제가 발생하기 때문입니다.
```
int b = cube((int) 2); // 메소드의 반환 값(double)을, int 변수 b로 대입할 수 없음.
```
double을 int로 대입하기 위해서는 강제변환 즉, 캐스팅이 필요합니다.
```
int b = (int) 8.0;
```