본문 바로가기
■ Programming /C++

[C++] 4-4. [데이터 타입/ 자료형] 실수형 데이터 타입 사용과 표현

by Popbox 2017. 3. 20.
반응형

[C++] 4-4. [데이터 타입/ 자료형] 실수형 데이터 타입 사용과 표현

[뇌를 자극하는 C++ , 저.이현창]책을 기준으로 작성하였습니다

 

 

실수형 데이터 타입 사용과 표현

 

안녕하세요. 지금까지 배우면서 저희는 예제에 int 형(정수) 만 써보았는대요.

이제 실수형에 대해 알아보겠습니다.!

 

 

  1. 실수 타입

 

실수를 보관할 수 있는 타입( float , double , long double )을 보통 부동 소수점 타입 이라고 합니다.

우선 실수 타입을 사용해 변수를 정의하는 법을 배워보겠습니다.

 

 

[실수 값을 대입하는 2가지 방법]

1. 소숫점을 그대로 사용

2. 과학적 표기법(지수 사용)

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
    float        f;
    double       d;
    long double ld;
 
    //1. 변수에 실수 값을 대입
    f  = 0.00123f;
    d  = 1.23;
    ld = 123.0;
 
    //2. 변수에 실수 값을 대입
    f  = 1.23E-3f;
    d  = 1.23E0;
    ld = 1.23E2;
cs

 

-> 그런대 여기서 float 형 변수의 값 뒤에는 왜 f 가 붙을까요?????

그럼 빼고 빌드를 해볼깨요.......

이러한 경고 메시지가 발생하게 됩니다.

 

[이유]

C++에서는 실수 뒤에 f가 붙어 있지 않으면 double 타입에 상응하는 실수 값이라고 생각합니다.

(컴파일러는 실수는 모두 double로 판단합니다. f를 붙이면 float형으로 인식합니다.)

그렇기 때문에 double보다 정밀도가 떨어지는 float 타입의 변수에 대입하려고 하면 위와 같은 경고가 뜨는 것 입니다

 

 

 

 

  2.  지수를 이용한 실수 표기법

-> 간단한 수학이니... 아시겠죠!?

사용하면 좋은점은 소스 공간절약과 자리 수 파악의 쉬움 입니다.

(조만간 정리해서 올리겠습니다.)

 

 

 

 

  3. 실수 타입의 내부 구조

만약 부동 소수점 방식이 아니라 고정 소수점 방식이 있다면 변수의 일정 공간은 정수 부분을 저장하는 데 사용하고, 나머지 공간은 소수 부분을 저장하는 방식을 사용할 것이다.

그러나 부동 소수점 타입은 변수의 일정 공간에는 유효자리를 저장하고 나머지 공간에는 지수를 저장하고 있다.


부동 소수점 방식을 사용하면 보다 넓은 범위의 숫자를 보관할 수 있다. 그러나 정밀도를 잃어버릴 수 있는 단점도 있다.

이 단점은 이진수를 사용해서 정확한 실수를 표현하는 것이 불가능하다는 점과 가수를 저장하는 공간이 고정되어 있다는 점에서 기인한다.

(컴퓨터로는 정확한 소수점을 표현할 수 없다. = 오차가 존재함 )

 

 

 

 


 

 감사합니다. 공감 한번 부탁드려요.

[ 다음 장 ]

[ C++ ] 4-5 . [데이터 타입/자료형]  문자형 데이터 타입 사용과 이스케이프 문자 : http://popbox.tistory.com/33 

 

반응형

댓글