일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 알고리즘
- DirectX 12
- 프로그래머스
- 동적계획법
- 병행성 관련 오류
- OS
- 타입 객체
- 쓰레드
- 운영체제
- 그리디알고리즘
- 멀티쓰레드
- 병행성
- 영속성
- directx
- 자료구조
- DirectX12
- I/O장치
- 락
- 다이나믹 프로그래밍
- 파일시스템 구현
- 그리디 알고리즘
- 스케줄링
- 컨디션 변수
- Direct12
- 멀티프로세서
- codility
- 디자인패턴
- 렌더링 파이프라인
- 다이나믹프로그래밍
- 백준
Archives
- Today
- Total
기록공간
round 반올림 메서드 (C++ 11) 본문
반응형
round 메서드는 <math.h> 라이브러리 내에 정의되어 있다.
double round(double num);
float round(float num);
long double round(long double num);
// template
double round(T x);
round는 인자로 들어온 값을 반올림해서 반환하는 메서드이다. 맨 밑의 경우처럼 템플릿 함수로 구현되어 있어 꼭 위 함수들의 변수형을 맞추지 않아도 된다.
round 함수를 사용한 결과 값은 다음과 같다.
round(3.2) ==> 3
round(3.7) ==> 4
round(-3.2) ==> -3
round(-3.7) ==> -4
위 예제를 코드로 표현하면 다음과 같다.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double a1 = 3.2;
double a2 = 3.7;
double a3 = -3.2;
double a4 = -3.7;
cout << "round(3.2) ==> " << round(a1) << endl;
cout << "round(3.7) ==> " << round(a2) << endl;
cout << "round(-3.2) ==> " << round(a3) << endl;
cout << "round(-3.7) ==> " << round(a4) << endl;
return 0;
}
round를 이용한 특정 소수점자리 반올림
round를 응용하면 특정 소수점자리도 반올림 시킬 수 있다. 예를 들면 다음과 같다.
#include <iostream>
#include <math.h>
using namespace std;
double round_digit(double num, int d)
{
double t = pow(10, d - 1);
return round(num * t) / t;
}
int main()
{
double a1 = 3.234647;
cout << "1번째 소수점 반올림 ==> " << round_digit(a1, 1) << endl;
cout << "2번째 소수점 반올림 ==> " << round_digit(a1, 2) << endl;
cout << "3번째 소수점 반올림 ==> " << round_digit(a1, 3) << endl;
cout << "4번째 소수점 반올림 ==> " << round_digit(a1, 4) << endl;
cout << "5번째 소수점 반올림 ==> " << round_digit(a1, 5) << endl;
cout << "6번째 소수점 반올림 ==> " << round_digit(a1, 6) << endl;
return 0;
}
반올림할 자릿수가 소수점 첫번째 자릿수가 될때까지 10^n 만큼 곱해준 후 round 메서드로 반올림을 한 후 다시 10^n만큼 나눠주면 원하는 소수점 자릿수를 반올림 시킬 수 있다.
(5번째 소수점 자릿수를 반올림)
3.234647 => 3.234647 * 10^(5 - 1) => round(32346.47) => 32346 / 10^(5 - 1) => 3.2346
반응형
'C++' 카테고리의 다른 글
객체 지향 프로그래밍( OOP ) 개념 (0) | 2020.06.29 |
---|---|
std::getline()을 이용한 string 표준입력 (0) | 2020.06.25 |
예외 처리 (0) | 2020.04.21 |
스마트 포인터 - 간략하게 (0) | 2020.04.07 |
decltype 키워드 (0) | 2020.04.03 |
Comments