728x90
☕ int형 타입에 실수를 대입하면 오류가 발생한다
- 실수는 정수를 포함하지만, 정수는 실수를 포함할 수 없기 때문에 아래의 코드는 컴파일 오류가 발생한다.
int i1 = 50.0;
int i2 = 25.4f;
☕ 실수 값을 정수에 저장하려면 형변환을 해야한다.
- 실수값을 정수 타입의 변수에 저장하려면 정수타입을 형변환해야한다. 변환하고자 하는 값 앞에 (int)를 붙인다.
- 주의해야할 점은 소수점 이하 부분을 잘린다.
- 이를 명시적 타입 변환(강제 타입 변환)이라고 한다
int i1 = (int)50.0;
int i2 = (int)25.6f;
☕ 크기가 큰 타입은 작은 타입을 저장할 수 있다.
- long 타입의 변수는 byte, short, int 타입의 값을 저장할 수 있다.
- int 타입의 변수는 byte, short타입의 값을 저장할 수 있다.
- short 타입의 변수는 byte타입의 값을 저장할 수 있다.
short s = 5;
int i = s;
long x = i;
System.out.println(i);
System.out.println(x);
☕ 예제: 형변환시 주의할점
- 크기가 큰 타입을 작은 타입에 저장할 때 오버플로우를 조심해야한다.
public class PrimitveCastExam {
public static void main(String[] args) {
long x2 = 50;
int i2= (int)x2;
System.out.println(x2);
System.out.println(i2);
long x3 = Long.MAX_VALUE;
int i3 = (int)x3;
System.out.println(x3);
System.out.println(i3);
}
}
결과값:
50
50
9223372036854775807
-1
☕ 구글에서 JAVA에서 강제 형변환시 주의할 점 검색해보기
- 이 외에 다양한 문제점들이 나올 것이다.
728x90
'개발&etc > JAVA' 카테고리의 다른 글
[java] 비트연산자 (0) | 2023.03.08 |
---|---|
[java] 문자 타입 (0) | 2023.03.08 |
[java] 정수형 타입 byte, short, int, long (0) | 2023.03.06 |
[java] 논리형 타입과 논리 연산자(비교, 논리) (0) | 2023.03.06 |
[java] 코드는 한줄씩 차례대로 실행된다 (1) | 2023.03.06 |