데이터타입으로 float
과 double
을 이용하여 실수를 표현할 수 있다. 2.0, 3.6 등의 소숫점자리까지 있는 수를 표현 할 때 쓸 수 있는데 float
과 double
둘 다 실수를 표현하는 데이터 타입이지만 쓰는 방법에 차이가 있다.
둘 다 5.5
라는 정수를 표현하고자 아래와 같이 적었다.
float a = 5.5;
double b = 5.5;
하지만 float
을 적은 줄에 빨간색 줄의 오류가 확인된다.
터미널에서도 오류를 확인할 수 있다.
float
은 실수 뒤에F
를 붙여서 쓰면 오류가 발생하지 않는다.
실수는 기본적으로 double
의 데이터타입을 기본으로 한다는 것을 알고 가면 되겠다.
데이터타입을 다른쪽의 데이터타입으로 전환(Conversion)하는 것으로 자바는 형 변환을 자동으로 처리해준다.
double
은 float
보다 데이터 범위가 크다.
따라서 아래와 같은 예제를 실행해도 오류가 없다.
double a = 3.0F;
F
는 원래float
의 뒤에 붙지만,double
형으로 선언해도 문제가 없음을 확인할 수 있다.
이는 자동 형변환이 일어났기 때문이다.
하지만 반대로 float
를 F
없이 선언하게 되면 오류가 발생한다.
빨간색으로 오류를 확인할 수 있다.
이는 double
의 데이터타입이 float
의 데이터타입보다 범위가 크기 때문에 double
이 float
을 대체해서 쓸 때에는 데이터의 손실이 없지만, 반대로 float
가 double
을 대체해서 쓸 때에는 데이터손실이 생기기 때문이다.
자동 형변환은 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용된다! 자동형변환은 명시적 형변환과 비교하여 암묵적 형변환이라고도 한다.
byte->short/char->int->long->float->double 순으로 범위가 크다.
명시적 형변환은 괄호 안에 데이터 타입을 지정하여 값앞에 위치시키는 것을 의미한다.
값앞에 데이터 타입을 지정하지 않으면 12번째 줄, 13번째 줄에서 오류가 생기는 것을 확인할 수 있다. 명시적 형변환은 나중에 객체지향에서 유용하므로 잘 알아두는 것이 좋다고 한다!