Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ round() 함수 완벽 정리 – 반올림 원리와 실전 예제

C++의 round() 함수는 매개변수로 전달된 double, float, long double 값을 가장 가까운 정수 값으로 반올림하는 데 사용됩니다. 반올림 규칙은 일반적인 수학적 반올림과 동일하게, 소수점 이하가 0.5 이상이면 절댓값 기준으로 멀어지는 방향(올림)이 적용됩니다.

round() 함수를 사용하려면 헤더 파일 <cmath> 또는 <tgmath>를 프로그램에 포함해야 합니다.

C++11 표준 이후 제공되는 round() 오버로드 버전

  • double round(double D)
  • float round(float F)
  • long double round(long double LD)
  • double round(T var) — 정수형 등 기타 산술 타입에 대한 제네릭 버전

주의: 반환되는 값은 부동소수점(floating point) 형태로 표현된 가장 가까운 정수입니다. 즉, 2.3을 반올림하면 2가 아닌 2.0이 반환됩니다.

round() 함수 사용 예제

다음 프로그램은 양수와 음수에 대해 round() 함수를 호출하여 그 결과를 출력합니다.

#include <cmath>
#include <iostream>
int main(){
    double num1 = 10.5;
    double num2 = 10.3;
    double num3 = 9.7;
    std::cout << "round(" << num1 << ") 결과 : " << round(num1) << "\n";
    std::cout << "round(" << num2 << ") 결과 : " << round(num2) << "\n";
    std::cout << "round(" << num3 << ") 결과 : " << round(num3) << "\n";
    num1 = -9.3;
    num2 = -0.3;
    num3 = -9.9;
    std::cout << "round(" << num1 << ") 결과 : " << round(num1) << "\n";
    std::cout << "round(" << num2 << ") 결과 : " << round(num2) << "\n";
    std::cout << "round(" << num3 << ") 결과 : " << round(num3) << "\n";
    return 0;
}

실행 결과

round(10.5) 결과 : 11
round(10.3) 결과 : 10
round(9.7) 결과 : 10
round(-9.3) 결과 : -9
round(-0.3) 결과 : -0
round(-9.9) 결과 : -10

결과 해석

양수의 경우 소수점 이하가 0.5 이상이면 올림되고(10.5 → 11), 미만이면 내림됩니다(10.3 → 10). 음수도 마찬가지로 절댓값 기준으로 반올림되므로 -9.3은 -9로, -9.9는 -10으로 처리됩니다. 또한 -0.3처럼 0에 가까운 음수는 -0으로 출력되는데, 이는 부동소수점 연산의 특성상 부호가 유지된 0이 반환되기 때문입니다.