본문 바로가기
C++

4. 실수형 자료형

by arirang_ 2023. 1. 4.

정수형 자료형과 실수형 자료형을 처리하는 데이터 방식은 완전 다르다.

● 정수형 데이터 표현 방식 : 비트, 한정적인 공간 안에서 2진수로 표현
                                             (표현할 수 있는 경우의 수가 한정적, 숫자의 표현 범위↓)

● 실수형 데이터 표현 방식 : 비트값을 고정하기 어려울 수 있고, 모두 배치시키기 어렵다. → "복동 소수점 방식" 이용

 

즉 메모리를 다루는 방식 자체가 다르다. (3과 3.0은 완전 다름)

int a = 3 + 3.0;

정수 방식 vs 실수 방식 결정해야함. 그러나 a가 정수이기때문에 3.0을 형변환 한다.

따라서 명시적으로 적어주는 것이 좋고, 실수와 정수를 혼용에서 쓰는 경우는 의도한 것이 아니라면 피하자.

int a = 3 + (int)3.0;

float vs double

float는 4byte의 크기를 갖는 반면에 double은 8byte의 크기를 갖는다.

double은 표현할 수 있는 값의 범위가 넓으므로 미세한 소수점까지 표현이 가능하다. (float보다 메모리 공간이 2배 늘어남)

※ 실수는 정밀하게 표현되는 값이 아니다.

아주 근사한 값까지는 표현할 수 있겠지만, 정확한 값을 표현하기에는 어려울 수 있다.

또한 소수점 자리가 길어질수록 가수 부분이 늘어난다. 


정리하면,

1) 정수 표현 방식과 실수 표현 방식은 다르다.

2) 실수 표현 방식은 정밀도에 의존한다.

3) 따라서 double(8) 자료형이 float(4)보다 더 아래의 소수점까지 정확하게 표현이 가능하다.

4) 정수는 정수끼리, 실수는 실수끼리 연산하되, 혼용해서 연산할 경우 명시적으로 변환해주자. 

 

 

 

'C++' 카테고리의 다른 글

6. 증감 연산자  (0) 2023.01.06
5. 산술 연산자  (1) 2023.01.04
3. 정수형 자료형  (2) 2023.01.04
2. 자료형  (0) 2023.01.02
1. 주석  (0) 2023.01.02