해당 게시물은 [제대로 파는 자바 (Java) - by 얄코]를 수강한 내용을 바탕으로 작성하였습니다.
실수 자료형의 크기와 범위
자료형 |
크기 |
float |
4바이트 |
double |
8바이트 |
▶ double이 float보다 단순히 범위가 넓은 것이 아니라, 보다 정밀하게 표현 가능
▶ float은 f 또는 F를 붙여 표현해야 함
// float은 뒤에 f 또는 F를 붙여 표현 (안 붙이면 자바는 기본적으로 double로 인식함)
float flt1 = 3.14f;
double dbl1 = 3.14;
// ⚠️ float에는 double을 담을 수 없음
// float flt2 = dbl1; //불가!!!
float flt2 = (float) dbl1; //하려면 double을 float으로 형변환해야함
// 반대는 가능
double dbl2 = flt1;
▶ 실수 자료형에 정수를 대입하면 묵시적 변환됨
▶ float과 double의 연산은 double을 반환함
// float과 double의 연산은 double 반환
// float flt04 = flt01 + dbl01; // ⚠️ 불가
double flt04 = flt01 + dbl01;
▶ 부동 소수점 방식 상 실수 간 연산 시 오차가 자주 발생함
→ BigDecimal 클래스를 사용하여 해결 가능
▶ 정수 자료형과 실수 자료형의 계산은 실수를 반환함
// 💡 정수 자료형과 실수 자료형의 계산은 실수 반환
// int flt2 = int1 / flt1; // ⚠️ 불가
float flt2 = int1 / flt1;
// 또는
// double flt2 = int1 / flt1;
▶ 리터럴로 작성 시 double임을 명시하려면 .0을 붙여줘야 함
▶ 실수를 정수 자료형에 강제로 넣으면 소수부를 버림
▶ 정수/실수간, 다른 숫자 자료형간 사용 가능