[완료] JAVA에서 데이타 타입, 형변환, 연산자간의 관계에서, (*와 *=의 차이)

raymundo의 이미지

안녕하세요, 모 프로그래밍 까페에 질문글이 올라왔는데 저도 답을 모르겠고 궁금해서요.

public class cast {
    public static void main(String args[]) {
        int n = 5;
        n *= 2.3;       // 이건 에러가 안 남. n = 11
        n = n * 2.3;    // 이건 에러
    }
}

컴파일해보면

cast.java:5: possible loss of precision
found   : double
required: int
                n = n * 2.3;    // 이건 에러
                      ^
1 error

n *= 2.3 이나 n = n * 2.3 은 동일한 일을 하는 구문인데, 어째서 이런 차이가 날까요?

구글링해보려 해도 *= 같은 기호가 검색이 안 되어서 키워드를 넣기가 힘드네요.

아 참, 버전은 Java 1.6.0_13, Linux 였습니다.

neocoin의 이미지

raymundo의 이미지

으아... 그렇군요. 캐스트까지 암시되어 있군요. 감사합니다 ^_^

좋은 하루 되세요!