반응형
자릿수 만큼 출력하는 std::setprecision() 함수는 결국 정밀도를 확인할 수 있다.
#include <iostream>
#include <iomanip> // std::setprecision()
int main() {
using namespace std;
double a(1.0);
double b(0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1); // 오차 누적
cout << setprecision(16); // 16 미만의 숫자를 입력하면 '1'이 출력된다.
cout << a << '\n'; // 1
cout << b << '\n'; // 0.9999999999999999
cout << setprecision(17) << b << '\n'; // 0.99999999999999989
cout << setprecision(18) << b << '\n'; // 0.999999999999999889
return 0;
}
반응형
'C++' 카테고리의 다른 글
[C++] 무한대 판별: std::isinf() (0) | 2021.10.10 |
---|---|
[C++] 숫자 판별: std::isnan() (0) | 2021.10.10 |
[C++] 자릿수 출력: std::setprecision() (0) | 2021.10.06 |
[C++] 변수 타입의 최대·최솟값: std::numeric_limits<> (0) | 2021.10.05 |
[C++] 자료형의 크기와 범위 (논리, 자료, 정수) (0) | 2021.09.27 |