int
> long
> double
public class Casting1 {
public static void main(String[] args) {
int intvalue = 10;
long longvalue;
double doublevalue;
// int -> long
longvalue = intvalue;
System.out.println("LongValue = " + longvalue);
// int -> double
doublevalue = intvalue;
System.out.println("DoubleValue = " + doublevalue);
// long -> double
doublevalue = 20L;
System.out.println("DoubleValue2 = " + doublevalue);
}
}
// 실행결과
LongValue = 10
DoubleValue = 10.0
DoubleValue2 = 20.0
위처럼 코드를 작성했지만, 결국 대입하는 형(타입)을 맞추어야 하기 때문에 개념적으로는 아래처럼 동작함 (Java는 같은 형끼리만 대입이 가능하기 때문에 자동으로 형변환을 함)
// intValue = 10
doubleValue = intValue
// 형 맞추기
doubleValue = (double) intValue
// 변수 값 읽기
doubleValue = (double) 10
// 형변환
doubleValue = 10.0
이렇게 앞에 (double)
과 같이 적어주면 int
형이 double
형으로 형이 변환된다. (= 형변환)
작은 범위 숫자 타입에서 큰 범위 숫자 타입으로의 대입은 개발자가 직접 형변환을 하지 않아도 되는 이유는 이 과정이 자동으로 일어나기 때문에 자동 형변환 또는 묵시적 형변환이라고 한다.