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이 반환되기 때문입니다.