c++ 1029 : [기초-데이터형] 실수 1개 입력받아 그대로 출력하기2
728x90
실수 1개를 입력받아 그대로 출력해보자.
(단, 입력되는 실수의 범위는 +- 1.7*10-308 ~ +- 1.7*10308이다.)
참고
float 데이터형을 사용하면 +- 3.4*10-38 ~ +- 3.4*1038 범위의 실수를 저장할 수 있다.
(float로 선언하고 % f로 입력받아 출력하면 된다.)
이 범위를 넘어가는(더 작거나 더 큰) 실수를 저장하기 위해서는
보다 큰 범위를 저장할 수 있는 다른 데이터형을 사용해야 정상적으로 저장시킬 수 있다.
double은 더 정확하게 저장할 수 있지만, float보다 2배의 저장 공간이 필요하다.
double 데이터형을 사용하면
+- 1.7*10-308 ~ +- 1.7*10308 범위의 실수를 저장할 수 있다.
예시
double d;
scanf("% lf", &d); // double(long float) 형식으로 입력
printf("% lf", d);
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
double d;
scanf("%lf", &d);
printf("%.11lf\n", d);
return 0;
}
scanf 할 때는 float --> % f / double --> % lf로 해야 하지만
printf 할 때는 float, double 모두 % f로 하면 되다는 얘기
- c에는 default argument promotions라는 규칙이 있습니다.
- 이 규칙에 따르면 char, short 등의 int 이하 자료형은 모두 int로 진급 (만약 안 되는 경우엔 unsigned int로 진급)
- float형은 double로 진급
- 결국 % f 하나로 float, double을 모두 처리 가능
728x90
'Algorithm > codeup' 카테고리의 다른 글
c++ 1031 : [기초-출력변환] 10진 정수 1개 입력받아 8진수로 출력하기 (0) | 2020.11.01 |
---|---|
c++ 1030 : [기초-데이터형] 정수 1개 입력받아 그대로 출력하기3 (0) | 2020.11.01 |
c++ 1026 : [기초-입출력] 시분초 입력받아 분만 출력하기 (0) | 2020.10.30 |
c++ 1025 : [기초-입출력] 정수 1개 입력받아 나누어 출력하기 (0) | 2020.10.30 |
c++ 1024 : [기초-입출력] 단어 1개 입력받아 나누어 출력하기 (0) | 2020.10.30 |
댓글
이 글 공유하기
다른 글
-
c++ 1031 : [기초-출력변환] 10진 정수 1개 입력받아 8진수로 출력하기
c++ 1031 : [기초-출력변환] 10진 정수 1개 입력받아 8진수로 출력하기
2020.11.01 -
c++ 1030 : [기초-데이터형] 정수 1개 입력받아 그대로 출력하기3
c++ 1030 : [기초-데이터형] 정수 1개 입력받아 그대로 출력하기3
2020.11.01 -
c++ 1026 : [기초-입출력] 시분초 입력받아 분만 출력하기
c++ 1026 : [기초-입출력] 시분초 입력받아 분만 출력하기
2020.10.30 -
c++ 1025 : [기초-입출력] 정수 1개 입력받아 나누어 출력하기
c++ 1025 : [기초-입출력] 정수 1개 입력받아 나누어 출력하기
2020.10.30