프로그래밍 기술/안드로이드

[안드로이드] 14. Java - 실수형

언제나휴일 2016. 4. 16. 19:42
반응형

실수형


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개 비트는 가수부입니다.


[그림] 메모리에 float 형식 데이터 표현


반응형