fegetround, fesetround
|
헤더 파일에 정의됨
<fenv.h>
|
||
|
int
fesetround
(
int
round
)
;
|
(1) | (C99부터) |
|
int
fegetround
(
)
;
|
(2) | (C99부터) |
1) 부동 소수점 반올림 방향을 인수 round 와 동일하게 설정하려고 시도합니다. 이 인수는 부동 소수점 반올림 매크로 중 하나일 것으로 예상됩니다.
2) 현재 반올림 방향에 해당하는 floating-point rounding macro 값을 반환합니다.
목차 |
매개변수
| round | - | 반올림 방향, 부동 소수점 반올림 매크로 중 하나 |
반환값
1) 0 성공 시 0, 그렇지 않으면 0이 아닌 값.
2) 현재 반올림 방향을 설명하는 부동 소수점 반올림 매크로 또는 방향을 결정할 수 없는 경우 음수 값.
참고 사항
현재 반올림 모드는 가장 최근의
fesetround
호출의 영향을 반영하며,
FLT_ROUNDS
를 사용하여 조회할 수도 있습니다.
예제
#include <fenv.h> #include <math.h> #include <stdio.h> // #pragma STDC FENV_ACCESS ON void show_fe_current_rounding_direction(void) { printf("current rounding direction: "); switch (fegetround()) { case FE_TONEAREST: printf ("FE_TONEAREST"); break; case FE_DOWNWARD: printf ("FE_DOWNWARD"); break; case FE_UPWARD: printf ("FE_UPWARD"); break; case FE_TOWARDZERO: printf ("FE_TOWARDZERO"); break; default: printf ("unknown"); }; printf("\n"); } int main(void) { /* 기본 반올림 방향 */ show_fe_current_rounding_direction(); printf("+11.5 -> %+4.1f\n", rint(+11.5)); /* 두 정수 사이의 중간값 */ printf("+12.5 -> %+4.1f\n", rint(+12.5)); /* 두 정수 사이의 중간값 */ /* 현재 반올림 방향 저장 */ int curr_direction = fegetround(); /* 현재 반올림 방향 임시 변경 */ fesetround(FE_DOWNWARD); show_fe_current_rounding_direction(); printf("+11.5 -> %+4.1f\n", rint(+11.5)); printf("+12.5 -> %+4.1f\n", rint(+12.5)); /* 기본 반올림 방향 복원 */ fesetround(curr_direction); show_fe_current_rounding_direction(); return 0; }
가능한 출력:
current rounding direction: FE_TONEAREST +11.5 -> +12.0 +12.5 -> +12.0 current rounding direction: FE_DOWNWARD +11.5 -> +11.0 +12.5 -> +12.0 current rounding direction: FE_TONEAREST
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.6.3.1 fegetround 함수 (p: TBD)
-
- 7.6.3.2 fesetround 함수 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.6.3.1 fegetround 함수 (p: TBD)
-
- 7.6.3.2 fesetround 함수 (p: TBD)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.6.3.1 fegetround 함수 (p: 212)
-
- 7.6.3.2 fesetround 함수 (p: 212-213)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.6.3.1 fegetround 함수 (p: 193)
-
- 7.6.3.2 fesetround 함수 (p: 193-194)
참고 항목
|
(C99)
(C99)
(C99)
|
현재 반올림 모드를 사용하여 정수로 반올림
(함수) |
|
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
|
현재 반올림 모드를 사용하여 정수로 반올림하며,
결과가 다를 경우 예외 발생 (함수) |
|
C++ documentation
for
fegetround
,
fesetround
|
|