C++에서 소수점을 반올림하는 방법은 다양한 방식으로 구현할 수 있습니다.
가장 일반적인 방법은 표준 라이브러리의 수학 함수인 std::round, std::floor, std::ceil 등을 사용하는 것입니다.
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 제곱으로 나누어 원하는 자리에서 반올림된 결과를 얻습니다.
이 방법을 사용하면 소수점 이하 어떤 자리에서도 손쉽게 반올림할 수 있습니다.