본문 바로가기
C++ 알고리즘/풀다가 알게된 것

소수점 n 자리에서 반올림, 올림 , 내림 (D2 1984. 중간 평균값 구하기 )

by hoshi03 2024. 10. 12.

double 형 자료형으로

 

ceil - 올림

floor - 내림

 

• 반올림

round 메서드를 사용하면 소수 첫째 자리에서 반올림한다

근데 소수 3째나 4째에서 하고 싶으면?

double res = 123.456789;
double rounded = round(res * 1000) / 1000.0;

 

이런 방식으로 하면 소수 3째자리에서 반올림한 걸 구할 수 있다

나눌때 / 10 형태가 아닌 / 10.0을 해줘야 되는걸 기억해두자

 

#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <cmath>

using namespace std;


int main () {
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);


    int test_case;
    cin >> test_case;
    for(int t = 1; t <= test_case; t++){

        vector<int> arr;
        for(int i = 0; i < 10; i++){
            int tmp;
            cin >> tmp;
            arr.push_back(tmp);
        }

        double res = 0;
        sort(arr.begin(), arr.end());
        for(int i = 1; i < 9; i++) res += arr[i];

        res /= 8.0;
        res = round(res);

        cout << "#" << t << " " << static_cast<int>(res) << '\n';
    }
}