# 실수 자료형



```java
package sec03.chap02;

public class Ex01 {
    public static void main(String[] args) {
        double a = 0.1, b = 0.2;

        //  ⚠️ 오차가 생김
        double c = a + b;
        
         //  float의 최대값과 최소값
        float fMin = -Float.MAX_VALUE;
        float fMax = Float.MAX_VALUE;

        //  double의 최대값과 최소값
        double dMin = -Double.MAX_VALUE;
        double dMax = Double.MAX_VALUE;

        //  최소 절대값
        float fAbsMin = Float.MIN_VALUE;
        double dAbsMin = Double.MIN_VALUE;

        // ⭐ double이 범위도 넓고, 정밀도도 높음 확인
        boolean bool1 = Float.MAX_VALUE < Double.MAX_VALUE;
        boolean bool2 = Float.MIN_VALUE > Double.MIN_VALUE;

        //  최대 정밀도 테스트
        double dblNum = 0.123456789123456789;
        float fltNum = 0.123456789123456789f;
        
    }
}


```





```java
package sec03.chap02;

public class Ex02 {
    public static void main(String[] args) {
        
        //  float은 뒤에 f 또는 F를 붙여 표현
        float flt1 = 3.14f;
        double dbl1 = 3.14;
    
        //  ⚠️ float에는 double을 담을 수 없음
        //float flt2 = dbl1;
        //  반대는 가능
        double dbl2 = flt1;
    
        long lng1 = 123;
    
        //  정수를 대입할 시 묵시적 변환
        //  💡 float(4바이트)에도 long(8바이트)의 값 담을 수 있음
        float flt3 = lng1;
        double dbl3 = lng1;
    
        long lng2 = Long.MAX_VALUE;
    
        //  ⭐ 큰 수(정확히 표현가능한 한도를 넘어서는)일 경우
        //  가능한 최대 정확도로
        float flt4 = lng2;
        double dbl4 = lng2;
        
        
    }
    
}

```





```java
package sec03.chap02;

public class Ex03 {
    public static void main(String[] args) {
        float flt01 = 4.124f;
        float flt02 = 4.125f;
        double dbl01 = 3.5;

        // float끼리의 연산은 float 반환
        float flt03 = flt01 + flt02;

        //  float과 double의 연산은 double 반환
        //float flt04 = flt01 + dbl01; // ⚠️ 불가

        //  부동소수점 방식상 오차 자주 있음
        double dbl02 = 0.2 + 0.3f;
        double dbl03 = 0.2f * 0.7f;
        double dbl04 = 0.4 - 0.3;
        double dbl05 = 0.9f / 0.3;
        double dbl06 = 0.9 % 0.6;

        
    }
}

```





