티스토리 뷰
저번 시간에 정수 자료형에 대해서 아주 복잡하게 알려드렸습니다.
이번 실수 자료형은 정말 간단하게 설명을 드리겠습니다.
"간단한 설명 = 귀찬아서 생략하겠다." 는 아닙니다.
그럼 오늘의 포스팅을 시작해 보겠습니다.
우선 실수 자료형 코드와 정수 자료형 코드의 차이를 보도록 하겠습니다.
#include <stdio.h>
int main()
{
int num1 = 1.00000;
float num2 = 1.00000f;
printf("%d\n %f\n", num1, num2);
return 0;
}
위 코드의 결과를 확인해보셨나요?
변수 num1의 값을 분명 1.00000 까지 입력하여 소수점 자리 까지 결과가 출력되록 했지만 출력 결과는 1 입니다. num1 변수는 정수 자료형으로 값을 저장하였기 때문입니다 정수는 소수점까지 표현하지 못합니다. 때문에 존재하는것이 실수 자료형입니다. 변수 num2를 보시면 float으로 입력하고 출력할때는 부동 소수점(floating point)의 약자 %f를 서식시정자로 사용합니다.
변수에 저장된 값의 가장 마지막에는 f를 같이 입력해주어야 합니다.
부동소수점은 기본 소수 6자리를 구성합니다. 만일 6자리 이상인 1.2345678을 입력하게된다면 결과는 소수점 7자리 이하를 모두 버리고 6자리로 구성한 1.234567 으로 출력합니다.
부동소수점을 사용하기에는 정밀도가 부족할경우에는 더 큰값을 저장이 가능한 double / long double을 사용하시면 됩니다.
#include <stdio.h>
int main()
{
float num1 = 1.0f;
double num2 = 1234.567898;
long double num3 = 1.234567l;
printf("%f %f %Lf\n", num1, num2, num3);
return 0;
}
double을 사용한 변수 num2에서는 저장할 값에 뒤에는 별도의 약자를 입력하지 않지만 변수 num3의 값 뒤에는 long 의 약자 l 를 입력해주셔야 합니다.
float와 double의 서식 지정자는 %f 로 동일합니다. 하지만 long double의 서식지정자는 long의 약자 대문자 L을 추가하여 %Lf로 입력해 주셔야 합니다.
결과적으로 C언어에서는 float은 단정밀도 부동소수점, double과 long double을 배정밀도 부동소수점이라고 하며
float 보다 double / long double이 더 넓은 크기의 값을 저장할 수 있습니다.
실수 자료형을 사용하다보면 출력된 값이 너무 복잡해 보일때가 있습니다. 이 경우는 지수 표기법을 사용하시면 됩니다.
#include <stdio.h>
int main()
{
float num1 = 4.e5f;
double num2 = -14.e-5;
long double num3 = 1.e6l;
printf("%f %f %Lf\n", num1, num2, num3);
printf("%e %e %Le\n", num1, num2, num3);
return 0;
}
지수 자료형과 실수바료형을 비교해보겠습니다. 상대적으로 더욱 보기편하며 이해하기도 쉽습니다.
표기방법은 아주 간단합니다. 원하는 지수값을 e뒤에 입력합니다. 서식지정자로는 지수 표기법(exponential notation)의 약어 e를 사용합니다. 나머지 방법은 실수 자료형 사용과 동일 합니다.
오늘 배운 코드의 최대 크기와 최소 크기를 확인하는 방법도 있습니다.
#include <stdio.h>
#include <float.h>
int main()
{
float num1 = FLT_MIN;
float num2 = FLT_MAX;
double num3 = DBL_MIN;
double num4 = DBL_MAX;
long double num5 = LDBL_MIN;
long double num6 = LDBL_MAX;
printf("%e %e\n", num1, num2);
printf("%e %e\n", num3, num4);
printf("%Le %Le\n", num5, num6);
return 0;
}
복잡해 보이지만 2가지만 알고계시면 됩니다. 실수형 자료의 최대, 최소를 알기 위해서는 float 헤더파일을 가져와야합니다.
각 자료형의 크기를 알기위해서는 float의 약자 FLT / double의 약자 DBL / long double의 약자 LDBL 을 입력하고 _(밑줄)뒤에 최대 혹은 최소를 보기와 같이 입력하시면 됩니다.
결과적으로 실핼을 하면 오늘 배운 자료형의 저장 가능한 값의 최대 최소를 알 수 있습니다.
이번 포스팅은 실수 자료형에 대해 알아보았습니다. 형태는 정수 자료형의 방식과 유사하여 공부하기가 쉬웠을거라 생각합니다.
'프로그래밍 언어 > C(C언어)' 카테고리의 다른 글
[C언어] 최소한 조건문은 알아야 게임을 만들지! (0) | 2018.01.27 |
---|---|
[C언어] 변수에 직접 입력하기 (0) | 2018.01.23 |
[C언어} 자료형의 종류와 쓰임 (0) | 2018.01.12 |
[C언어] 값에도 신분증이 있다? 변수 입력 (0) | 2018.01.10 |
[C언어] 게임버그! 프로그램버그! 버그를 잡자! (0) | 2018.01.08 |
- Total
- Today
- Yesterday
- Algorithm
- kakao
- JPA
- interview
- C언어
- 프로그래머스
- Solid
- CS
- 수학
- 면접
- Matlab
- 자바
- nginx
- 스프링
- 알고리즘
- 디자인패턴
- 백준
- java
- ajax
- security
- 그래프
- docker
- 스프링부트
- spring-cloud
- 매트랩
- 자격증
- 릿코드
- springboot
- Spring
- OOP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |