소수점 2째자리까지 반올림하는 법
floating-point
c
십진수
발생하는 문제 및 실행환경
C언어에서는 37.777779같은 float타입을
37.777779 -> 37.78같이 소수점 둘째자리까지 반올림하려면 어떻게 해야되나요?
-
2016년 02월 04일에 작성됨
조회수 19300
1 답변
출력만 하는 경우
연산이 아니라 그냥 출력만 하는 경우, 형식 지정자 %.2f
를 씁니다.
int main(void) {
float myfloat = 37.777779;
printf("%.2f", myfloat);
}
출력 : 37.78
연산 등을 위해 반올림하는 경우
내림/반올림/올림에 따라 각 각 <math.h>
의 floorf, roundf, ceilf를 써야 합니다.
#include <math.h>
float val = 37.777779;
float rounded_down = floorf(val * 100) / 100; /* 내림: 37.77 */
float nearest = roundf(val * 100) / 100; /* 반올림: 37.78 */
float rounded_up = ceilf(val * 100) / 100; /* 올림: 37.78 */
floating point연산은 오차가 있어서 기존 값과 약간의 차이가 있을 수도 있습니다.
-
2016년 02월 04일에 작성됨
출처 : https://stackoverflow.com/questions/1343890/rounding-number-to-2-decimal-places-in-c 이 질문은 저작자표시-동일조건변경허락(https://creativecommons.org/licenses/by-sa/3.0/deed.ko) 라이센스로 이용할 수 있습니다. 윤동길 2018.3.27 17:51