C++ 소수점 반올림

오현진·2024년 6월 21일

C++ 

목록 보기
16/26

C++에서 소수점을 반올림하는 방법은 다양한 방식으로 구현할 수 있습니다.

가장 일반적인 방법은 표준 라이브러리의 수학 함수인 std::round, std::floor, std::ceil 등을 사용하는 것입니다.

std::round 함수 사용

std::round 함수는 소수점 첫째 자리에서 반올림하여 가장 가까운 정수로 변환합니다. 이 함수는 헤더 파일에 정의되어 있습니다.


#include <iostream>
#include <cmath> // std::round 함수 사용

int main() {
    double num1 = 3.14159;
    double num2 = 2.71828;

    std::cout << num1 << "을 반올림한 값: " << std::round(num1) << std::endl;
    std::cout << num2 << "을 반올림한 값: " << std::round(num2) << std::endl;

    return 0;
}

위 코드를 실행하면 다음과 같은 결과가 출력됩니다:

3.14159을 반올림한 값: 3
2.71828을 반올림한 값: 3

소수점 이하 특정 자리에서 반올림

만약 소수점 이하 특정 자리에서 반올림하고 싶다면, 다음과 같은 방식을 사용할 수 있습니다. 예를 들어, 소수점 둘째 자리에서 반올림하려면 다음과 같이 합니다:

  
#include <iostream>
#include <cmath> // std::round 함수 사용

double roundToDecimalPlace(double value, int decimalPlaces) {
    double scale = std::pow(10, decimalPlaces);
    return std::round(value * scale) / scale;
}

int main() {
    double num = 3.14159;

    std::cout << num << "을 소수점 둘째 자리에서 반올림한 값: " << roundToDecimalPlace(num, 2) << std::endl;

    return 0;
}

위 코드를 실행하면 다음과 같은 결과가 출력됩니다:
3.14159을 소수점 둘째 자리에서 반올림한 값: 3.14

이처럼 roundToDecimalPlace 함수를 사용하면 소수점 이하 원하는 자리에서 반올림할 수 있습니다. 이 함수는 주어진 값을 10의 decimalPlaces 제곱으로 곱한 후 std::round를 적용하고, 다시 10의 decimalPlaces 제곱으로 나누어 원하는 자리에서 반올림된 결과를 얻습니다.

이 방법을 사용하면 소수점 이하 어떤 자리에서도 손쉽게 반올림할 수 있습니다.

0개의 댓글