내가 보려고 만든 C++ 정리

한우진·2023년 11월 2일
0

C++

목록 보기
4/4

반올림, 올림, 내림

#include <iostream>
#include <cmath>
//header

using namespace std;

int main() {
	float a;
    float b;
    float c;
    
    a = ceil(5.1);
    b = floor(2.8);
    c = floor(3.2 + 0.5);
    
    cout << a << endl;
    cout << b << endl;
    cout << c << endl;
}

결과

6
2
3

반올림 전용 round 함수가 있지만 c++ 11 버전부터 지원하기 때문에
반올림하려는 수에 0.5를 더해 floor 내림 함수를 이용해서 반올림하는 습관을 키우자


n번째 소수점 다루기(반올림, 올림)

문제에서 간혹가다가 소수점 n번째에서 반올림하거나 올림, 내림하는 문제가 있다. ceil, floor, round 함수는 소수점 첫째자리에서 실행되어 정수를 반환하기 때문에 원하는 n번째 자리에서 반올림하고 싶으면 곱한뒤에 반올림을 실행해야한다.

#include <iostream>
#include <cmath>
//header

using namespace std;

int main() {
    float num = 5.12345;

    float rounded = floor(num * 100.0 + 0.5) / 100.0; // 반올림하여 소수점 두 자리까지

    cout << fixed << setprecision(2) << rounded << endl; // 고정된 소수점 두 자리 출력
}

fixed, setprecision

setprecision만 사용하면 예를 들어 a = 3.141592 라는 수가 있을때
cout << setprecision(3) << a;

3.14

3.14가 출력된다 소수점 포함 3자리까지만 출력이 된다
그런데 cout << fixed << setprecision(3) << a;

3.141

했을때는 정수 부분을 카운트하지 않고 소수 부분 3자리까지 출력이된다

예시 문제

소프티어 연습문제 성적 평균 Lv3

0개의 댓글