[C++] 소수 몇째자리에서 round up(반올림)?

aeronova의 이미지

안녕하세요,

말 그대로 주어진 소수 몇째 자리에서 반올림 해주는 그런 함수 없나요?
예를 들면 1.2345 를 셋째 자리에서 반올림해서 1.23 뭐 이렇게
만들어 주는 함수요..

그냥 반올림/반내림해서 정수로 만드는 건 쉽게 보이는데,
이런 함수는 원래 있는지 모르겠네요.

조언 부탁드립니다. :)

dolsemix의 이미지

#include <math.h>

double d = 1.2345;
double result = ceil((d * 100.) - .5) / 100.;

// 어느 플랫폼에선가 ceil/floor 대신 roundup/rounddown 함수를 사용했던 기억이... 가물가물하네요...

담배 고만 펴야겠다...

bugiii의 이미지

사족: ceil... 음수일 경우에 문제가 있는 구현이 있으므로 꼭 확인하시구요. 만약 문제 있는 구현이라면 음수는 floor로 다르게 처리하는 것하고 *100 할 때의 지수 넘침을 조심하셔야 합니다.