floor , floor , floord32, floord64, floord128, nearest , trunc , itrunc 和 uitrunc 子例程
用途
地板 子例程, 弗拉夫 子例程, Floorl 子例程, 最近 子例程, 特伦茨 子例程, floord32 子例程, floord64 子例程和 floord128 子例程,将浮点数舍入为浮点整数值。
伊特伦茨 子例程和 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;
描述
地板, 弗拉夫, Floorl, floord32, floord64和 floord128 子例程返回最大浮点整数值,该值不大于 X 参数。
希望检查错误情况的应用程序应该将 错误号 设置为零,并在调用这些子例程之前调用 费克莱雷克斯普(FE_ALL_EXCEPT)。 返回时,如果 错误号 为非零或 费泰斯特西普(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 为非零,那么表示发生了错误。
最近 子例程将最接近的浮点整数值返回到 X 参数。 如果 X 正好位于两个最接近的浮点整数值之间,那么将返回一个偶数浮点整数。
特伦茨 子例程将最接近的浮点整数值返回给方向为 0 的 X 参数。 这相当于截断 X 参数的尾数位。
伊特伦茨 子 0 将最接近的带符号整数返回给方向为 0 的 X 参数。 这相当于截断 X 参数中的小数位,然后将 X 转换为带符号的整数。
Uitrunc 子例程将最接近的无符号整数返回给方向为 0 的 X 参数。 此操作等价于截断 X 参数的小数位,然后将 X 转换为无符号整数。
cc floor.c -lm伊特伦茨, Uitrunc, 特伦茨和 最近 子例程不是 ANSI C Library 的一部分。
参数
| 项 | 描述 |
|---|---|
| X | 指定一种双精度浮点值。 对于 Floorl 子例程,指定一个长整型双精度浮点值。 |
| 项 | 描述 |
|---|---|
| y | 指定一种双精度浮点值。 对于 Floorl 子例程,指定一些长整型双精度浮点值。 |
返回值
成功完成后, 地板, 弗拉夫, Floorl, floord32, floord64和 floord128 子例程将返回不大于 X的最大整数值,表示为 双, 浮, 长双倍, _Decimal32, _Decimal64或 _Decimal128(如果适用于函数的返回类型)。
如果x为NaN,返回NaN。
如果 X 为 ± 0 或 ± Inf ,那么将返回 X 。
如果正确的值将导致溢出,那么将发生范围错误,并且地板, 弗拉夫, Floorl, floord32, floord64和 floord128 子例程将分别返回宏 -HUGE_VAL, -HUGE_VALF, -HUGE_VALL, -HUGE_VAL_D32, -HUGE_VAL_D64和 -HUGE_VAL_D128的值。
错误代码
如果 X 大于或等于 INT_MAX 值,那么 伊特伦茨 和 Uitrunc 子例程将返回 INT_MAX 值,如果 X 等于或小于 INT_MIN 值,那么将返回 INT_MIN 值。 如果 x为静态NaN(not-a-number)或静态NaN,则 itrunc子例程返回INT_MIN值。 如果 x 是停顿 NaN 或静默 NaN,那么 uitrunc 子例程将返回 0。 ( INT_MAX 和 INT_MIN 值在 limits.h 文件中定义。) uitrunc 子例程 INT_MAX (如果 x 大于 INT_MAX ) 和 0 (如果 x 小于或等于 0.0 )
文件数
| 项 | 描述 |
|---|---|
| float.h | 包含 ANSI C FLT_ROUNDS 宏。 |