C의 round 함수

Jinku Hu 2023년10월12일
  1. round함수를 사용하여 부동 소수점 숫자를 가장 가까운 정수로 반올림하고 부동 소수점 숫자를 반환합니다
  2. lround함수를 사용하여 부동 소수점 숫자를 가장 가까운 정수로 반올림하고 정수 유형을 반환합니다
  3. ceil함수를 사용하여 부동 소수점 숫자를 인수보다 작지 않은 가장 작은 정수 값으로 반올림하십시오
C의 round 함수

이 기사에서는 C에서round기능을 사용하는 방법에 대한 몇 가지 방법을 설명합니다.

round함수를 사용하여 부동 소수점 숫자를 가장 가까운 정수로 반올림하고 부동 소수점 숫자를 반환합니다

round함수는<math.h>헤더 파일에 정의 된 C 표준 라이브러리 수학 유틸리티의 일부입니다. 이 제품군에는round, roundfroundl의 세 가지 함수가 있습니다. 이러한 함수는 다양한 유형의 부동 소수점 숫자를위한 것이며 각각 해당 유형 값을 반환합니다. math헤더를 포함한 소스 파일은 라이브러리 코드를 링크하기 위해-lm플래그를 사용하여 컴파일해야합니다. 다음 예제 코드에서는 여러float리터럴 값에 대한 변환을 보여주고 결과를 콘솔에 출력합니다. round는 기본적으로 0에서 멀어집니다. 정수 값-0,+0,NaN또는INFINITY가 인수로 전달되면 동일한 값이 리턴됩니다.

#include <fenv.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {
  printf("round(+2.3) = %+.1f\n", round(2.3));
  printf("round(+2.5) = %+.1f\n", round(2.5));
  printf("round(+2.7) = %+.1f\n", round(2.7));
  printf("round(-2.3) = %+.1f\n", round(-2.3));
  printf("round(-2.5) = %+.1f\n", round(-2.5));
  printf("round(-2.7) = %+.1f\n", round(-2.7));

  exit(EXIT_SUCCESS);
}

출력:

round(+2.3) = +2.0
round(+2.5) = +3.0
round(+2.7) = +3.0
round(-2.3) = -2.0
round(-2.5) = -3.0
round(-2.7) = -3.0

lround함수를 사용하여 부동 소수점 숫자를 가장 가까운 정수로 반올림하고 정수 유형을 반환합니다

반면lround함수는 가장 가까운 정수로 반올림하고 적분 값을 반환합니다. 이 패밀리에는 6 개의 함수가 있으며, 그 중 절반은 반올림 된 값으로long int를 반환하고 나머지는long long int를 반환합니다. round패밀리와 유사한lround는 0에서 멀어 지도록 절반의 실수를 반올림합니다.

#include <fenv.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {
  printf("lround(+2.3) = %ld\n", lround(2.3));
  printf("lround(+2.5) = %ld\n", lround(2.5));
  printf("lround(+2.7) = %ld\n", lround(2.7));
  printf("lround(-2.3) = %ld\n", lround(-2.3));
  printf("lround(-2.5) = %ld\n", lround(-2.5));
  printf("lround(-2.7) = %ld\n", lround(-2.7));

  exit(EXIT_SUCCESS);
}

출력:

lround(+2.3) = 2
lround(+2.5) = 3
lround(+2.7) = 3
lround(-2.3) = -2
lround(-2.5) = -3
lround(-2.7) = -3

ceil함수를 사용하여 부동 소수점 숫자를 인수보다 작지 않은 가장 작은 정수 값으로 반올림하십시오

또는ceil함수를 사용하여 주어진 부동 소수점 숫자를 인수 자체보다 작지 않은 가장 작은 정수 값으로 반올림 할 수 있습니다. round함수와 유사하게,이 제품군에도 각각float,doublelong double유형에 사용되는ceil,ceilfceill의 세 가지 함수가 있습니다. prinf지정자 문자열에+기호를 포함하면 반올림 된 인수에 대한 해당 기호가 자동으로 표시됩니다.

#include <fenv.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {
  printf("ceil(+2.3) = %+.1f\n", ceil(2.3));
  printf("ceil(+2.5) = %+.1f\n", ceil(2.5));
  printf("ceil(+2.7) = %+.1f\n", ceil(2.7));
  printf("ceil(-2.3) = %+.1f\n", ceil(-2.3));
  printf("ceil(-2.5) = %+.1f\n", ceil(-2.5));
  printf("ceil(-2.7) = %+.1f\n", ceil(-2.7));

  exit(EXIT_SUCCESS);
}

출력:

ceil(+2.3) = 3.000000
ceil(+2.5) = 3.000000
ceil(+2.7) = 3.000000
ceil(-2.3) = -2.000000
ceil(-2.5) = -2.000000
ceil(-2.7) = -2.000000
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

관련 문장 - C Math