소수점 2째자리까지 반올림하는 법


발생하는 문제 및 실행환경

C언어에서는 37.777779같은 float타입을

37.777779 -> 37.78같이 소수점 둘째자리까지 반올림하려면 어떻게 해야되나요?


조회수 2123


1 답변


좋아요
0
싫어요
채택취소하기

출력만 하는 경우

연산이 아니라 그냥 출력만 하는 경우, 형식 지정자 %.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일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close