命名空间
变体
操作

roundeven、roundevenf、roundevenl

来自 cppreference.com
< c‎ | numeric‎ | math
 
 
 
常见数学函数
类型
(C99)(C99)    

(C99)(C99)    

函数
基本运算
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小运算
(C99)
(C23)    
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)
(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)
(C99)
(C23)
(C23)
三角和双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
误差和伽马函数
(C99)
(C99)
(C99)
(C99)
最接近整数的浮点运算
(C99)(C99)(C99)
roundeven
(C23)
(C99)
(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点操作函数
(C99)(C99)
(C99)(C23)
(C99)
缩窄运算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子和量子指数函数
十进制重新编码函数
全序和有效载荷函数
分类
(C99)
(C99)
(C99)
(C23)
宏常量
特殊浮点值
(C99)(C23)
参数和返回值
(C99)(C99)(C99)(C99)(C99)    
错误处理
(C99)    

 
在头文件 <math.h> 中定义
float       roundevenf( float arg );
(1) (自 C23 起)
double      roundeven( double arg );
(2) (自 C23 起)
long double roundevenl( long double arg );
(3) (自 C23 起)
在头文件 <tgmath.h> 中定义
#define roundeven( arg )
(4) (自 C23 起)
1-3) 计算 arg(以浮点格式)的最接近的整数,无论当前舍入模式如何,将一半情况舍入到最接近的偶数整数。
4) 类型通用宏:如果 arg 的类型为 long double,则调用 roundevenl。否则,如果 arg 的类型为整数类型或 double 类型,则调用 roundeven。否则,分别调用 roundevenf

内容

[编辑] 参数

arg - 浮点值

[编辑] 返回值

如果未发生错误,则返回 arg 的最接近的整数,将一半情况舍入到最接近的偶数整数。

[编辑] 错误处理

此函数不受 math_errhandling 中指定的任何错误影响。

如果实现支持 IEEE 浮点运算(IEC 60559)

  • FE_INEXACT 永远不会被引发。
  • 如果 arg 为 ±∞,则会返回它,未经修改。
  • 如果 arg 为 ±0,则会返回它,未经修改。
  • 如果 arg 为 NaN,则会返回 NaN。

[编辑] 示例

#include <math.h>
#include <stdio.h>
 
int main(void)
{
    printf("roundeven(+2.4) = %+.1f\n", roundeven(2.4));
    printf("roundeven(-2.4) = %+.1f\n", roundeven(-2.4));
    printf("roundeven(+2.5) = %+.1f\n", roundeven(2.5));
    printf("roundeven(-2.5) = %+.1f\n", roundeven(-2.5));
    printf("roundeven(+2.6) = %+.1f\n", roundeven(2.6));
    printf("roundeven(-2.6) = %+.1f\n", roundeven(-2.6));
    printf("roundeven(+3.5) = %+.1f\n", roundeven(3.5));
    printf("roundeven(-3.5) = %+.1f\n", roundeven(-3.5));
    printf("roundeven(-0.0) = %+.1f\n", roundeven(-0.0));
    printf("roundeven(-Inf) = %+f\n",   roundeven(-INFINITY));
}

可能的输出

roundeven(+2.4) = +2.0
roundeven(-2.4) = -2.0
roundeven(+2.5) = +2.0
roundeven(-2.5) = -2.0
roundeven(+2.6) = +3.0
roundeven(-2.6) = -3.0
roundeven(+3.5) = +4.0
roundeven(-3.5) = -4.0
roundeven(-0.0) = -0.0
roundeven(-Inf) = -inf

[编辑] 参考资料

  • C23 标准 (ISO/IEC 9899:2024)
  • 7.12.9.8 roundeven 函数 (p: 265-266)
  • 7.27 类型通用数学 <tgmath.h> (p: 386-390)
  • F.10.6.8 roundeven 函数 (p: 532)

[编辑] 另请参阅

(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)
使用当前舍入模式舍入为整数,在半途情况下舍入到零
如果结果不同,则引发异常
(函数) [编辑]
(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)
舍入到最接近的整数,在半途情况下舍入到零
(函数) [编辑]