Java 형 변환 연습하기
코드부터 작성하였다.
Java 형 변환 연습1
double doubleValue;
doubleValue = 5.0 / 2.0;
System.out.println("doubleValue = " + doubleValue);
3번 줄 코드는 5.0 / 2.0 리터럴 값부터 먼저 계산하게 된다. 리터럴은 double형으로 인식되어 2.5 값으로 계산되고 doubleValue 으로 할당하게 된다.
출력 값:
doubleValue = 2.5
Java 형 변환 연습2
double doubleValue;
doubleValue = 5 / 2;
System.out.println("doubleValue = " + doubleValue);
3번 줄 5 / 2
살펴본다. 5 / 2
리터럴은 int형으로 인식되고, int 형의 결과 결과값 소숫점을 없애고 값을 doubleValue로 할당하였다.
이 변수는 double 타입이므로 실수형 2.0 값으로 반환된다.
doubleValue 대입 과정
- double 타입의 doubleValue 선언
- doubleValue = 5 / 2; 대입(=) 전에 5 / 2 우선 계산
- int / int = int 형이므로 int 형태로 소숫점을 없애고 나누기 계산
- 대입하는 변수가 큰 범위이므로 (double) 타입으로 형 변환.
- 계산된 값은 2.0이 됨
- 값 2.0를 doubleValue 로 할당
출력 값:
doubleValue = 2.0
Java 형 변환 연습3
double doubleValue;
doubleValue = 5.0 / 2;
System.out.println("doubleValue = " + doubleValue);
3번 줄 코드 5.0 / 2
리터럴이 double 형과 int 형이 섞여 있다. 이 경우 리터럴 2값은 double 자동 형 변환된다.
double / double 이 되었으므로 실수까지 계산되어 2.5 이 된다.
출력 값:
doubleValue = 2.5
Java 형 변환 연습3
double doubleValue;
doubleValue = (double) 5 / 2;
System.out.println("doubleValue = " + doubleValue);
대입 전 (double) 5 / 2 으로 명시적 형변환을 하였다.
출력 값:
doubleValue = 2.5
정리
할당 전 타입 따라 계산이 다르게 나올 수 있으므로 주의해야 한다.
int * int = int
형으로 할당double * int = double
형으로 할당- 수식(* / % + -)은 마찬가지로 큰 범위의 타입으로 할당하게 된다.