변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 형변환(castiong)이라고 한다.
int i = 5
double d = i
System.out.println(d); // 5.0 출력
// 자동형변환
자동 형변환의 규칙
- byte의 크기가 작은 것에서 큰 것으로 갈 때 형변환이 이루어 진다.
- 정수에서 실수는 자동 형변환이 가능하지만, 실수에서 정수는 자동으로 형변환이 되지 않는다.
- 정수형에서 실수형으로 형변환 할 때는 실수형을 double로 쓴다. ( flaot는 정밀도가 7자리라 오차값이 들어갈수도 있음)
ex)
byte 타입은 1byte 크기를 가지고, int 타입은 4byte 크기를 가지므로 int 타입이 큰 크기 타입이고, byte 타입이 작은 크기 타입이다
즉, 아래 코드와 같이 서로 다른 타입의 데이터라도 낮은 자료형과 높은 자료형을 연산할 경우 자동으로 형변환이 되어 계산된다.
작은 타입과 큰 타입을 구분하는 기준은 각 데이터 타입의 메모리 크기(byte) 이다. 위의 사진과 같이 int타입은 메모리 크기가 4바이트고, short 타입은 2바이트이므로 int가 short보다 큰 타입이 되게 된다. 반면 long은 8바이트이므로 int가 long보다는 작은 타입이 된다.
1. String to int
자바 Integer 클래스의 parseInt함수와 valueOf 함수로 변환 가능
2. String to double, float
정수와 마찬가지로
자바Double, Float 클래스의 parseDouble함수와 valueOf 함수로 변환 가능
1. int to String
2. double, float to String
1. double, float to int
(int)캐스팅 방식으로 변환한다.
이때 실수형의 소수점 아래자리는 버려진다.
2. int to double, float
(double),(float)캐스팅 방식으로 변환한다.
소수점 아래자리는 0으로 채워진다.