c언어

c언어. 실수 자료형 사용하기

코코팡 2021. 7. 15. 02:52

실수 자료형의 크기 및 범위를 먼저 알아보자

자료형 크기 범위 유효자릿수 비고
float 4바이트,
32비트
1.175494e-38~3.402823e+38 7 IEEE 754 단정밀도 부동소수점
double 8바이트,
64비트
2.225074e-308~1.797693e+308 16 IEEE 754 배정밀도 부동소수점
long
double
8바이트,
64비트
2.225074e-308~1.797693e+308 16 IEEE 754 배정밀도 부동소수점

표 출처 코딩 도장 (https://dojang.io/mod/page/view.php?id=45)

 

참고 : 지수 표기법

{

아주 큰 숫자나 작은 숫자를 표기할 때 사용하는 표기법이다.

 

실수 e+지수 : 실수*10의 거듭제곱이며 예를 들어 2.1e + 4이면 2.1에 지수인 4 즉 10^4를 거듭제곱한 것을 곱해주면

2.1 * 10000 = 21000이 된다.

 

실수 e-지수 : 실수 * (1 / 10)의 거듭제곱이며 예를 들어 2.1e - 4이면 2.1에 지수인 4 즉 (1 / 10)^4를 거듭제곱한 것을 곱해주면

2.1 * 1/10000 = 0.0021이 된다.

}

 

지수표기법

위와 같이 지수 표기법으로 출력을 할 땐 서식지정자 %e 를 쓰며 long double인 경우엔 le를 쓴다.

출력값

[실수 자료형 선언하기]

 

실수 자료형

위와 같이 float를 선언할 때 숫자 뒤에 f를 붙이고 double은 아무것도 붙이지 않으며 long double은 숫자 뒤에 l를 붙인다.

그리고 1.f 나. 1f와 같이 소수점 앞뒤의 0을 f를 이용하여 생략 가능하다. 

실수 자료형 출력을 할 때는 float와 double은 %f 의 서식지정자를 long double은 %lf를 사용한다.

여담으로 숫자 뒤에 f나 l를 붙이는 이유는 붙이지 않을 경우 double로 인식을 하기 때문인데 예를 들어 float보다 더 큰 숫자를 넣을 때 f를 붙이지 않으면 에러가 발생한다.

그리고 %f로 출력할 땐 기본적으로 소수점 6자리만 지원하기에 double 같은 경우 15 자릿수까지 지원을 하기에 이를 모두 출력하기 위해선 %. 15f로 자릿수를 지정해주면 된다.

 

[실수 자료형의 크기 구하기]

정수 자료형의 크기를 구하는 방법과 똑같이 sizeof를 이용하면 된다.

바이트의 크기를 구하는 것이므로 %d의 서식지정자를 쓴다.

 

[최솟값,최댓값 표현하기]

정수와는 다른 헤더 파일을 사용한다. float.h라는 헤더 파일을 이용하여 실수 자료형의 최소, 최댓값을 구해보자.

float.h를 이용한 최대,최솟값

 

출력값.

[실수형의 오버플로우와 언더플로우]

float.h를 이용하여 최솟값과 최댓값을 할당하고 num1에는 아주 큰 값으로 나눠주고 num2에는 10000.0f를 곱해주면 각각 언더플로우와 오버플로우가 발생하는데

 

이렇게 최솟값의 언더플로우는 0 또는 쓰레기 값을 출력하게 되고 최댓값의 오버플로우는 무한대의 의미를 가진 inf를 출력한다.

'c언어' 카테고리의 다른 글

c언어. 문자 자료형 사용하기  (4) 2021.07.15
C언어. 정수 자료형 사용하기  (0) 2021.07.13
C언어. 변수 만들기  (0) 2021.07.07