floor, floorf, floorl, floord32, floord64, floord128, nearest, trunc, itrunc 및 uitrunc 서브루틴
용도
플로어 서브루틴, 플로어에프 서브루틴, 플로어엘 서브루틴, 최인접 서브루틴, 트렁크 서브루틴, floord32 서브루틴, floord64 서브루틴, floord128 서브루틴은 부동 소수점 숫자를 부동 소수점 정수 값으로 반올림합니다.
Itrunc 서브루틴과 uitrunc 서브루틴은 각각 부동 소수점 숫자를 부호 있는 정수와 부호 없는 정수로 반올림합니다.
라이브러리
IEEE 수학 라이브러리libm.a 또는 System V 수학 라이브러리libmsaa.a) 표준 C 라이브러리libc.a)(별도의 구문이 따름)
구문
#include <math.h>
double floor ( x)
double x;
float floorf (x)
float x;
long double floorl (x)
long double x;
_Decimal32 floord32(x)
_Decimal32 x;
_Decimal64 floord64(x)
_Decimal64 x;
_Decimal128 floord128(x)
_Decimal128 x;
double nearest (x)
double x;
double trunc (x)
double x;
표준 C 라이브러리(libc.a)
#include <stdlib.h>
#include <limits.h>
int itrunc (x)
double x;
unsigned int uitrunc (x)
double x;
설명
플로어, 플로어에프, 플로어엘, floord32, floord64, floord128 서브루틴은 x 매개변수보다 크지 않은 가장 큰 부동 소수점 정수 값을 반환합니다.
오류 상황을 확인하려는 애플리케이션은 이러한 서브루틴을 호출하기 전에 errno를 0으로 설정하고 feclearexcept(FE_ALL_EXCEPT)를 호출해야 합니다. 반환 시 errno가 0이 아니거나 fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW)가 0이 아닌 경우 오류가 발생했음을 알 수 있습니다.
가장 가까운 서브루틴은 x 매개변수에 가장 가까운 부동 소수점 정수 값을 반환합니다. X가 가장 가까운 두 부동 소수점 정수 값의 정확히 중간에 위치하면 짝수 부동 소수점 정수가 반환됩니다.
Trunc 서브루틴은 0 방향의 x 매개변수에 가장 가까운 부동 소수점 정수 값을 반환합니다. 이는 x 매개변수의 소수점 비트를 잘라내는 것과 같습니다.
Itrunc 서브루틴은 0 방향의 x 매개변수에 가장 가까운 부호가 있는 정수를 반환합니다. 이는 x 매개변수에서 분수 비트를 잘라낸 다음 x를 부호 있는 정수로 변환하는 것과 같습니다.
Uitrunc 서브루틴은 0 방향의 x 매개변수에 가장 가까운 부호가 없는 정수를 반환합니다. 이 작업은 x 매개변수의 분수 비트를 잘라낸 다음 x를 부호가 없는 정수로 변환하는 것과 같습니다.
cc floor.c -lmItrunc, uitrunc, trunc 및 가장 가까운 서브루틴은 ANSI C 라이브러리에 포함되지 않습니다.
매개변수
| 항목 | 설명 |
|---|---|
| x | 배정밀도 부동 소수점 값을 지정합니다. Floorl 서브루틴의 경우, 긴 배정밀도 부동 소수점 값을 지정합니다. |
| 항목 | 설명 |
|---|---|
| 성 | 배정밀도 부동 소수점 값을 지정합니다. Floorl 서브루틴의 경우, 긴 배정밀도 부동 소수점 값을 지정합니다. |
리턴 값
성공적으로 완료되면 플로어, 플로어에프, 플로어엘, floord32, floord64, floord128 서브루틴은 함수의 반환 유형에 따라 더블, 플로트, 롱 더블, _Decimal32, _Decimal64, _Decimal128 표현되는 x보다 크지 않은 최대 적분값을 반환합니다.
X가 NaN, NaN 반환됩니다.
X가 ±0 또는 ±Inf이면 x가 반환됩니다.
올바른 값으로 인해 오버플로우가 발생하면 범위 오류가 발생하고 thefloor, floorf, floorl, floord32, floord64 및 floord128 서브루틴은 각각 매크로 -HUGE_VAL, -HUGE_VALF, -HUGE_VALL, -HUGE_VAL_D32, -HUGE_VAL_D64 및 -HUGE_VAL_D128 값을 반환합니다.
오류 코드
Itrunc 및 uitrunc 서브루틴은 x가 INT_MAX 값보다 크거나 같으면 INT_MAX 값을 반환하고, x가 INT_MIN 값보다 작거나 같으면 INT_MIN 값을 반환합니다. Itrunc 서브루틴은 x가 Quiet NaN(not-a-number) 또는 Silent NaN 경우 INT_MIN 값을 반환합니다. Uitrunc 서브루틴은 x가 Quiet NaN 또는 Silent NaN 0을 반환합니다. ( INT_MAX 및 INT_MIN 값은 limits.h 파일에 정의되어 있습니다.) The uitrunc subroutine INT_MAX if x is greater than INT_MAX and 0 if x is less than or equal 0.0
파일
| 항목 | 설명 |
|---|---|
| float.h | ANSI C FLT_ROUNDS 매크로를 포함합니다. |