[Java] 2.1.4 실수형

2.1.4 실수형

java 언어에서는 실수형을 표현할 때 사용하는 기본 자료형으로 float과 double을 제공합니다.

float 형식의 값을 표현할 때는 실수 뒤에 f를 추가하여 표시합니다. 예를 들어 0.2라고 표현하면 double 형식의 표현이고 0.2f라고 표현하면 float 형식의 표현입니다.

실수는 0에서 1 사이에도 무한 개의 실수가 존재하여 오차 범위를 갖는 실수를 표현합니다.

예를 들어 float 형식 변수 f에 0.6f로 초기화하고 f에 f+0.1f를 대입하는 것을 반복하면 어떻게 값이 변할까요? 계속 더하다보면 오차가 쌓여 기대하지 않았던 값으로 변하는 것을 알 수 있습니다. 따라서 프로그램에서 실수 데이터를 취급할 때는 오차가 발생할 수 있다는 것을 고려하여야 합니다.

private static void exFloat() {
    System.out.println("float 형식");
    float f = 0.6f;
    f = f + 0.1f;
    System.out.println(f);
    f = f + 0.1f;
    System.out.println(f);
}
float 형식
0.70000005
0.8000001

참고로 float은 첫 번째 비트는 부호 비트, 이후 8개의 비트는 지수부, 나머지 23개 비트는 가수부입니다. double은 첫 번째 비트는 부호 비트, 이후 11개의 비트는 지수부, 나머지 52개 비트는 가수부입니다.