형 변환(Type Conversion): 데이터의 타입을 변경하는 것이다. 예를 들어 int 타입의 정수 200을 float 타입의 실수 200으로 바꾸는 것이다. 컴퓨터는 모든 정보가 0과 1로 만들어지는데 정수 200과 실수 200의 bit값은 다르기 때문에 컴퓨터에게 보다 정확한 유형의 데이터를 도출하라고 시키기 위해서 형 변환을 해준다고 할 수 있다.
형식이 다른 데이터를 더하려면 한 쪽의 데이터 타입을 다른 쪽의 데이터 타입으로 전환해야 한다. 특히 Java의 경우 형 변환을 자동으로 처리해주는데 이러한 전환작업을 자동(암시적)형 변환(implicit Conversion)이라고 부른다.
자동 형 변화의 원칙: 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변화만 허용된다.
byte, shot, int, long까지는 정수형 데이터인 반면 float과 double은 실수형 데이터이다.
왼쪽으로 갈수록 적은 범위의 수를 표현하고 오른쪽으로 갈수록 넓은 범위의 수를 표현할 수 있다.
예를들어 실수 3.14를 정수로 표현하려면 소숫점 아래자리의 수를 삭제한 3이라는 정수로만 표현하게 되므로 0.14의 데이터 손실이 일어나게 된다. 이러한 점에서 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변화는 허용되지만 그 반대의 경우는 허용되지 않는다.
문자도 컴퓨터 상으로는 0과 1로 나타낼 수 있는 수이지만 문자는 유니코드로 나타내기 때문에 숫자형으로 나타내기 어렵다.