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;

描述

地板弗拉夫Floorlfloord32floord64 floord128 子例程返回最大浮点整数值,该值不大于 X 参数。

希望检查错误情况的应用程序应该将 错误号 设置为零,并在调用这些子例程之前调用 费克莱雷克斯普(FE_ALL_EXCEPT)。 返回时,如果 错误号 为非零或 费泰斯特西普(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) 为非零,那么表示发生了错误。

最近 子例程将最接近的浮点整数值返回到 X 参数。 如果 X 正好位于两个最接近的浮点整数值之间,那么将返回一个偶数浮点整数。

特伦茨 子例程将最接近的浮点整数值返回给方向为 0 的 X 参数。 这相当于截断 X 参数的尾数位。

注: 缺省浮点取整方式为 舍入到最接近的值。 所有 C 主程序以设置为 舍入到最接近的值。 的舍入方式开始

伊特伦茨 子 0 将最接近的带符号整数返回给方向为 0 的 X 参数。 这相当于截断 X 参数中的小数位,然后将 X 转换为带符号的整数。

Uitrunc 子例程将最接近的无符号整数返回给方向为 0 的 X 参数。 此操作等价于截断 X 参数的小数位,然后将 X 转换为无符号整数。

注: 编译使用 libm.a 库中带有 -lm 标志的子例程的任何例程。 要编译floor.c文件,例如,输入:
cc floor.c -lm

伊特伦茨Uitrunc特伦茨最近 子例程不是 ANSI C Library 的一部分。

参数

描述
X 指定一种双精度浮点值。 对于 Floorl 子例程,指定一个长整型双精度浮点值。
描述
y 指定一种双精度浮点值。 对于 Floorl 子例程,指定一些长整型双精度浮点值。

返回值

成功完成后, 地板弗拉夫Floorl floord32 floord64floord128 子例程将返回不大于 X的最大整数值,表示为 长双倍_Decimal32_Decimal64_Decimal128(如果适用于函数的返回类型)。

如果x为NaN,返回NaN。

如果 X 为 ± 0 或 ± Inf ,那么将返回 X

如果正确的值将导致溢出,那么将发生范围错误,并且地板弗拉夫Floorl floord32 floord64floord128 子例程将分别返回宏 -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_MAXINT_MIN 值在 limits.h 文件中定义。) uitrunc 子例程 INT_MAX (如果 x 大于 INT_MAX ) 和 0 (如果 x 小于或等于 0.0 )

文件数

描述
float.h 包含 ANSI C FLT_ROUNDS 宏。