C++ float, double 형의 이해

2014.06.14 08:13

엘카 조회 수:1088

참고 문서  
float :  부동 소수점형의 변수, 정밀도(유효 자리수)는 대략 6자리
              4바이트(32-bit)의 크기를 할당 받는다 
double : float 보다 자세히 표현할 수 있는 부동 소수점형의 변수
             정밀도(유효 자리수)는 대략 15자리. 
             8바이트(64-bit)의 크기를 할당받는다. 
 #include <stdio.h> 
int main(void) 
{ 
   float f1; 
   double d1; 
   printf(“%d, %d, %d, %d\n”, sizeof(f1), sizeof(d1), 
           sizeof(5.4)); /* 실수 형 상수는 8바이트 할당된다 */ 
   return 0; 
} 


부동 소수점 오차 

 - 실수 0.1을 float형 변수에 저장했을 때 다음과 같이 복잡한 2진수 bit 조합으로 표현된다. 

0.1 → (0 01111011 10011001100110011001101) 

- 근본적으로 2진수와 10진수의 수 체계가 다르기 때문에 부동 소수형은 10진수를 정확하게 

표현하지 못한다. 

- 위에서 2진수로 기록된  0.1을 소수점 이하 20자리까지 출력하면 

0.10000000149011611900  라는 값이 출력되는데, 이것은 2의 음수 거듭승으로 

    10진수 0.1을 정확하게 표현하지 못하므로 가장 근접한 수를 유효자리 범위에서 표현하게 

된다. 

- C 언어에서 실수 형 값은 정확한 값이 아닌, 그 값의 가장 근사한 값으로 표현된다. 


float와 double형은 무엇이 다른가? 

- double은 float 보다 더 큰 범위의 값을 저장한다. 

- double은 float 보다 정밀도(유효 자리수)의 값을 2배 이상 보장한다. 

번호 제목 날짜 조회 수
23 치환에서의 형 변환 2014.06.14 241
22 수식에서의 형 변환 2014.06.14 237
» float, double 형의 이해 2014.06.14 1088
20 short, int, long 형의 이해 2014.06.14 338
19 경제 1 2013.03.10 13953
18 디자인의 예술적 특성 2012.12.07 14512
17 디자인의 미적 근원 / 경험 2012.12.07 13939
16 디자인이란? 2012.12.07 24192
15 미학의 역사 2012.12.07 16234
14 미의 개념 2012.12.07 4202
13 먼셀 표색계 (Munsell color system) 2012.03.27 4648
12 현색계와 혼색계 2012.03.27 36587
11 색채표준 2012.03.27 4635
10 색의 혼합 file 2012.03.27 5639
9 색의 3속성 / 색조 file 2012.03.27 10151
8 색의 항상성 / 색의 연색성 / 망막 잔상 file 2012.03.27 25314
7 색지각설 file 2012.03.27 4922
6 카메라와 눈의 비교 file 2012.03.26 6371
5 색채 지각 file 2012.03.20 5377
4 색채 현상 (빛의 현상) 2012.03.20 5339