하나의 자료형을 다른 자료형으로 변환하는 것을 형변환(casting)이라고 한다.
1. 자동적인 형변환
- 컴파일러가 자동으로 값의 범위가 작은 자료형을 값의 범위가 큰 자료형으로 변환하는 것
- 피연산자 중 하나가 double형이면 다른 피연산자도 double형으로 변환된다
- 피연산자 중 하나가 float형이면 다른 피연산자도 float형으로 변환된다
- 피연산자 중 하나가 long형이면 다른 피연산자도 long형으로 변환된다
- 그렇지 않으면 모든 피연산자는 int형으로 변환된다
- 확대 변환은 더 큰 크기의 변수로 값을 이동하는 변환이다
- 일반적으로 확대 변환은 안전한 변환이다
- 위 그림의 화살표 방향으로 형변환이 이루어지면 정보의 손실이 없다
-
int a=12; double d=3.3; double result=a+d; /* 출력값:15.3 a+d->12+3.3->12.0+3.3->15.3 */
2. 강제적인 형변환
- 값의 범위가 큰 자료형을 값의 범위가 작은 자료형으로 변환하는 것
- 강제 형변환 시 데이터 손실이 발생할 수 있다->데이터의 변형, 손실을 감수하고 강제 변환
- (새로운 자료형) 수식;
-
int i; double f; f=5/4; // 1.0 f=(double)5/4; // 1.25 i=(int)1.3+(int)1.8; // 2
- 이런 변환을 축소 변환이라고 한다
- 예를 들어 실수형 변수를 정수형 변수에 저장하면 소수점 이하가 없어진다
- 축소변환을 할 때는 자료를 잃을 가능성 때문에 항상 주의해야 한다
'JAVA' 카테고리의 다른 글
[JAVA] 조건문-if문 (0) | 2022.02.11 |
---|---|
[JAVA] 입력과 출력 (0) | 2022.02.10 |
[JAVA] 수식과 연산자 (0) | 2022.02.10 |
[JAVA]변수와 자료형 (0) | 2022.02.09 |
[JAVA]자바 프로그래밍 기초 (0) | 2022.02.08 |