float vs double

Ding Hye·2022년 5월 13일
0

데이터타입으로 floatdouble을 이용하여 실수를 표현할 수 있다. 2.0, 3.6 등의 소숫점자리까지 있는 수를 표현 할 때 쓸 수 있는데 floatdouble 둘 다 실수를 표현하는 데이터 타입이지만 쓰는 방법에 차이가 있다.

둘 다 5.5라는 정수를 표현하고자 아래와 같이 적었다.

float a = 5.5;
double b = 5.5;

하지만 float을 적은 줄에 빨간색 줄의 오류가 확인된다.

터미널에서도 오류를 확인할 수 있다.

float은 실수 뒤에F를 붙여서 쓰면 오류가 발생하지 않는다.

실수는 기본적으로 double의 데이터타입을 기본으로 한다는 것을 알고 가면 되겠다.

자동형변환

데이터타입을 다른쪽의 데이터타입으로 전환(Conversion)하는 것으로 자바는 형 변환을 자동으로 처리해준다.
doublefloat보다 데이터 범위가 크다.
따라서 아래와 같은 예제를 실행해도 오류가 없다.

double a = 3.0F;

F는 원래float의 뒤에 붙지만,double형으로 선언해도 문제가 없음을 확인할 수 있다.

이는 자동 형변환이 일어났기 때문이다.

하지만 반대로 floatF없이 선언하게 되면 오류가 발생한다.

빨간색으로 오류를 확인할 수 있다.
이는 double의 데이터타입이 float의 데이터타입보다 범위가 크기 때문에 doublefloat을 대체해서 쓸 때에는 데이터의 손실이 없지만, 반대로 floatdouble을 대체해서 쓸 때에는 데이터손실이 생기기 때문이다.

자동 형변환은 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용된다! 자동형변환은 명시적 형변환과 비교하여 암묵적 형변환이라고도 한다.

byte->short/char->int->long->float->double 순으로 범위가 크다.


명시적 형변환

명시적 형변환은 괄호 안에 데이터 타입을 지정하여 값앞에 위치시키는 것을 의미한다.

값앞에 데이터 타입을 지정하지 않으면 12번째 줄, 13번째 줄에서 오류가 생기는 것을 확인할 수 있다. 명시적 형변환은 나중에 객체지향에서 유용하므로 잘 알아두는 것이 좋다고 한다!

profile
서비스를 만들어보고 싶습니다.

0개의 댓글