JAVA/문법
[Java/문법] 강제 타입 변환 주의점
J_Jayce
2022. 1. 3. 14:03
1. 값 손실
- 사용자로부터 입력받은 값을 변환할 때 값의 손실이 발생하면 안된다.
- 강제 타입 변환 전에 우선 안전하게 값이 보존될 수 있는지 검사하는 것이 좋다.
ex) int -> byte
2. 정밀도 손실
- 정수타입을 실수 타입으로 변환할 때 정밀도 손실은 피해야 한다.
ex) int -> float 자동 변환 후 연산 (result : 0이 아닌 -4)
- float = 부호(1비트) + 지수(8비트) + 가수(23비트)
- 123456780은 23비트로 표현할 수 없기 때문에 근사치로 변환된다. 즉 정밀도가 상실된다.
- 이러한 문제를 해결하기 위해 double 형을 사용하여 변환해야 한다.
3. 연산식에서의 자동 타입 변환
- 두 피연산자 중 크기가 큰 타입으로 자동 변환된 후 연산을 수행한다.