728x90
반응형
본 게시글은 실전 기술을 정리해 놓은 '실전 압축' 입니다.
몇 번째 자리에서 반올림 하여라. 또는 절대/상대 오차가 10^-9까지 허용한다.
이런식으로 주어지는 문제에서는
반드시 조건에 맞게 출력을 해주어야 합니다.
소숫점 9자리 까지 출력한다고 가정하였을 때
printf("%.9lf", a/b);
cout << fixed << setprecision(9) << a/b;
C++
함수 | 기능 | 카운트 방식 | 출력 |
#include<iomaip> setprecision(n) |
소수 자릿수 설정 | 소숫점 n번째가 아니라 가장 큰 자리수 부터 Count 해서 n번째 까지 출력 (123.23 이면 1부터 Count해서 n번 째) |
만약 ( n < 전체 자리수 ) 그 다음 자리(n+1번) 에서 반올림 만약 (n >= 전체 자리수) 그대로 출력만 한다. 0으로 채우지 않음 |
#include<ios> fixed |
고정 부동 소수점 표기법 사용 | 소수점 뒤의 자리부터 Count하게 된다. |
전체 자리수 보다 n이 크면 나머지를 0으로 채운다. |
#include <iostream> // std::cout, std::fixed
#include <iomanip> // std::setprecision
int main () {
double f =3.14159;
std::cout << std::setprecision(5) << f << '\n'; // 3.1416
std::cout << std::setprecision(9) << f << '\n'; // 3.15159
std::cout << std::fixed;
std::cout << std::setprecision(5) << f << '\n'; // 3.14159
std::cout << std::setprecision(9) << f << '\n'; // 3.141590000
return 0;
}
ex) 3.141592
setprecision(5) = 3.1416
setprecision(6) = 3.14159
setprecision(7) = 3.141592
setprecision(8) = 3.141592
fixed >> setprecision(5) = 3.14159
fixed >> setprecision(6) = 3.141592
fixed >> setprecision(7) = 3.1415920
fixed >> setprecision(8) = 3.14159200
ex) 33.141592
setprecision(5) = 33.142
setprecision(6) = 33.1416
setprecision(7) = 33.14159
setprecision(8) = 33.141592
fixed >> setprecision(5) = 33.14159
fixed >> setprecision(6) = 33.141592
fixed >> setprecision(7) = 33.1415920
fixed >> setprecision(8) = 33.14159200
ex) 3.141596
fixed >> setprecision(5) = 3.14160
정리
cout 사용시
n번째 자리 까지 출력해야 한다면 = 절대/상대 오차가 n 이라면
1. 정밀도를 위해 float형 대신 double형 쓰세요
2. fixed >> setprecision(숫자); // (꼭 fixed 를 붙여 자리수 넘어가면 0으로 채우도록 해주세요)
문제
A/B
https://www.acmicpc.net/problem/1008
평균
https://www.acmicpc.net/problem/1546
반응형
'C++ > 알고리즘' 카테고리의 다른 글
C++ 정렬 알고리즘 (버블정렬, 삽입정렬, 선택정렬, 합병정렬, 퀵정렬, 힙정렬, 셀정렬, 기수정렬) (0) | 2019.10.22 |
---|---|
[실전 압축 알고리즘] - C/C++ 문자 숫자 변환 (0) | 2019.10.18 |
[실전 압축 알고리즘] - 비트 연산 (0) | 2019.10.18 |
[실전 압축 알고리즘] - C++ 입출력 (0) | 2019.08.24 |
[실전 압축 알고리즘] - 시간, 공간 복잡도 (0) | 2019.08.24 |