새소식

Java/제대로 파는 자바

[제대로 파는 자바 (Java)-by 얄코] 실수 자료형들

  • -

해당 게시물은 [제대로 파는 자바 (Java) - by 얄코]를 수강한 내용을 바탕으로 작성하였습니다.

 

 

자료형 크기
float 4바이트
double 8바이트

 

 

 

▶ double이 float보다 단순히 범위가 넓은 것이 아니라, 보다 정밀하게 표현 가능

최소 절대값이 float보다 double이 더 작으므로 double이 더 작은 수를 표현 가능하며 더 많은 자릿수로 정밀하게 표현 가능하다

 

 

 

▶ 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;

 

 

 

▶ 실수 자료형에 정수를 대입하면 묵시적 변환됨

4바이트 실수 자료형 float에도 8바이트 정수 자료형 long 값을 담을 수 있으며 해당 정수의 값이 한도를 넘어서 큰 경우에는 float보다 double이 더 정확하게 나타내는 것을 알 수 있음

 

 

 

▶ 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을 붙여줘야 함

정수 자료형끼리의 나누기 시 나머지를 버리고 정수가 double로 묵시적 변환되어 dbl5값이 2.0이 되었으므로 나눠지는 수 또는 나누는 수에다가 .0을 붙이면 double의 나누기 연산을 함

 

 

 

▶ 실수를 정수 자료형에 강제로 넣으면 소수부를 버림

실수를 정수 자료형으로 형변환한 결과 소수부를 버린 것을 볼 수 있음

 

 

 

▶ 정수/실수간, 다른 숫자 자료형간 사용 가능

int, float, double끼리 비교 연산이 가능한 것을 볼 수 있음

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.